tec memo

メモです。

C言語のプロトタイプ宣言

自作関数を作成する。 sum関数を作成する。

#include<stdio.h>

int main(void)
{
    sum(); /* sum関数を呼び出す */
    return 0;
}

int sum(void)
{
    printf("%d\n", (1 + 100) * 100 /2);
    return 0;
}

これをコンパイルしてみると以下のようなエラー。

sample2.c:6:5: warning: implicit declaration of function 'sum' is invalid in C99 [-Wimplicit-function-declaration]
    sum(); /* sum関数を呼び出す */
    ^
1 warning generated.

sum関数がmainより後ろに記述されているため、エラーとなった。このエラーを解決するには、最初にこの関数が存在することを明記する必要がある。 以下の通り記述する。

#include<stdio.h>

int sum(void); /* プロトタイプ宣言 */

int main(void)
{
    sum(); /* sum関数を呼び出す */
    return 0;
}

int sum(void)
{
    printf("%d\n", (1 + 100) * 100 /2);
    return 0;
}

そして、コンパイルすると成功した。