第一話 何故ヘッダファイルは必要


header01.c

/*

 * no string.h header

 *

 * (c) Copyright Spacesoft corp., 2006 All rights reserved.

 */

#include <stdio.h>

int main( void )

{

    char a[256]="abc";

    size_t len;

    len = strlen(a);

    printf("length of [%s]=%d",a,len);

    return 0 ;

}


header02.c

/*

 * no string.h header

 *

 * (c)Copyright Spacesoft corp., 2006 All rights reserved.

 */

#include <stdio.h>

int strlen( char* a )

{

    return 100;

}

int main( void )

{

    char a[256]="abc";

    int len;

    len = strlen(a);

    printf("length of [%s]=%d",a,len);

    return 0 ;

}


header03.c

/*

 *

 * with string.h header

 *

 * (c)Copyright Spacesoft corp., 2006 All rights reserved.

 */

#include <stdio.h>

#include <string.h>

int main( void )

{

    char a[256]="abc";

    size_t len;

    len = strlen(a);

    printf("length of [%s]=%d",a,(int)len);

    return 0 ;

}


header04.c

/*

 * (c)Copyright Spacesoft corp., 2006 All rights reserved.

 *

 */

#include <stdio.h>

int add(int i, int j);

int main( void )

{

    printf("%d+%d=%d\n",10, 20, add(10,20));

    return 0 ;

}

int add(int i, int j)

{

    return i+j;

}


header05.c

/*

 * (c)Copyright Spacesoft corp., 2006 All rights reserved.

 *

 */

#include <stdio.h>

int add(int i, int j)

{

    return i+j;

}

int main( void )

{

    printf("%d+%d=%d\n",10, 20, add(10,20));

    return 0 ;

}


header06.c

/*

 * (c)Copyright Spacesoft corp., 2006 All rights reserved.

 *

 */

foo();                      /* 前方宣言 */

int foo( int x, int y );    /* プロトタイプ宣言 */

/* foo関数の実体 */

int foo( int x, int y )

{

    return x + y;

}


header07.c

/*

 * (c)Copyright Spacesoft corp., 2006 All rights reserved.

 *

 */

foo();  /* 前方宣言 */

int main(void)

{

    return foo();

}

/* foo関数の実体 */

int foo( int x, int y )

{

    return x + y;

}


header08.c

/*

 * (c)Copyright Spacesoft corp., 2006 All rights reserved.

 *

 */

int foo(int x, int y);  /* プロトタイプ宣言 */

int main(void)

{

    return foo();   /* コンパイルエラーまたは警告 */

}

/* foo関数の実体 */

int foo( int x, int y )

{

    return x + y;

}


もどる