如果编译仍然有效,是否有必要在使用变量之前声明它?
/* hello-world.c */
#include <stdio.h>
int main(void) {
printf("Hello World!\n");
printf("1 + 2 is: %d\n", sum(1, 2));
return 0;
}
/* sum.c */
int sum(int a, int b) {
return a + b;
}
gcc hello-world.c sum.c我用and编译了这些代码clang hello-world.c sum.c,都得到了警告:implicit declaration of function 'sum' 但是编译了 a.out。
是否有任何案例证明在 C 中使用之前绝对有必要声明?
(编辑:在这里,我的意思是函数原型,如果有任何混淆)