【发布时间】:2012-02-29 06:21:39
【问题描述】:
术语“函数的隐式声明”是什么意思?调用标准库函数而不包含适当的头文件会产生警告,如下所示:
int main(){
printf("How is this not an error?");
return 0;
}
不应该在不声明它是错误的情况下使用函数吗?请详细说明。我搜索了这个网站,发现了类似的问题,但找不到明确的答案。大多数答案都提到了包含头文件以消除警告,但我想知道这不是错误。
【问题讨论】:
-
标准 C 库默认链接到构建中;例如,使用 gcc,您必须将 -nostdlib 作为参数显式传递给编译,以强制它不与 libc 链接。
-
@tbert 这就是链接器不抱怨的原因,但链接器对编译器对 C 代码的处理几乎没有影响。
-
我查看了 K&R,它说如果在范围内没有可见的函数的先前声明,则假定函数使用的第一个实例是返回类型为 int 的声明,并且没有任何假设参数。谢谢大家的意见。
标签: c