【发布时间】:2012-08-10 00:24:20
【问题描述】:
谁能告诉我为什么不包括stdio.h并且仍然使用printf函数只会在gcc上给出警告?
警告:内置函数“printf”的隐式声明不兼容
这应该是一个编译错误,因为我们包含了一个未声明的函数。
这与链接过程有关吗?请详细说明。
【问题讨论】:
-
关键字:隐式声明
-
@chris 还有这样的关键字吗?以及编译器如何链接到这个声明?
-
好的,抱歉,“请详细说明”部分让我想起了作业的常用措辞方式。
-
@akash,你没有给它签名,所以它会为你猜测。如果那个猜测是错误的(通常是这样),链接器会抱怨,因为现在它无法匹配它。它只是警告你它必须猜测。
-
@chris 这是否意味着编译器对 printf 做出了正确的猜测,因此它只给出警告并将其链接到提供的声明?