C言語なら俺に聞け(入門篇) Part 51
■ このスレッドは過去ログ倉庫に格納されています
0770デフォルトの名無しさん
2009/08/10(月) 12:13:03理由は全く見当違いだよ。
c89以前のレガシーCでは仮引き数の宣言ができなかった。
だから、引き数の型は呼び出し側が保証する必要があった。
例えば、こんな感じ。
--
int main()
{
double sin();
printf("%g\n", sin((double)0));
return 0;
}
--
c89辺りからは仮引き数の宣言もできるようになったので提供側が保証できるようになった。
例えば、こんな感じ。
--
#include <math.h>
int main()
{
printf("%g\n", sin(0));
return 0;
}
--
でも相変わらずプロトタイプ宣言は必須ではないので、プロトタイプ宣言をうっかり忘れるとおかしなことになる。
従って、大抵のコンパイラは警告を出すことでプロトタイプ宣言を行なうことを示唆しているってこと。
■ このスレッドは過去ログ倉庫に格納されています