我试图同时编译以下C文件
file1.c
#include<stdio.h>
int main()
{
foo();
return 0;
}
file2.c
#include<stdio.h>
void foo()
{
printf("Hello");
}
我使用Linux中的以下命令编译了两个文件 gcc file1.c file2.c -o文件
它成功编译而没有任何警告,并且在运行时将输出作为" Hello'应该不应该file1.c需要像void foo((这样的原型。C标准中有什么吗?
在C99之前,C有一个称为隐式声明的东西。
如果您没有指定foo
的声明,并且称为foo
,则隐式称为int foo();
。
但是,从C99和随后的标准中删除了这一点。