正如问题所述,“隐式声明函数”警告究竟意味着什么?我们刚刚在 gcc 上打开了警告标志,发现了很多这些警告的实例,我很好奇在修复它们之前这可能会导致什么类型的问题?
另外,为什么这是警告而不是错误。gcc 甚至如何能够成功链接此可执行文件?正如您在下面的示例中所见,可执行文件按预期运行。
以以下两个文件为例:
文件1.c
#include <stdio.h>
int main(void)
{
funcA();
return 0;
}
文件2.c
#include <stdio.h>
void funcA(void)
{
puts("hello world");
}
编译和输出
$ gcc -Wall -Wextra -c file1.c file2.c
file1.c: In function 'main':
file1.c:3: warning: implicit declaration of function 'funcA'
$ gcc -Wall -Wextra file1.o file2.o -o test.exe
$ ./test.exe
hello world