最初のプログラムは正しくコンパイルされました。2番目のプログラムはfooの引数が少なすぎるというエラーを出しました...両方のプログラムのコンパイラによってグローバル宣言が無視されますか?
最初のプログラム:
#include<stdio.h>
void foo();
int main()
{
void foo(int);
foo(1);
return 0;
}
void foo(int i)
{
printf("2 ");
}
void f()
{
foo(1);
}
2番目のプログラム:
void foo();
int main()
{
void foo(int);
foo();
return 0;
}
void foo()
{
printf("2 ");
}
void f()
{
foo();
}