在链接器还没有链接目标文件和库文件之前,编译器如何知道预定义函数的定义?

问题描述 投票:0回答:1

我们知道预定义函数的定义在库文件中,链接器的工作是将库代码(已编译)链接到我们的目标文件(在编译源代码后创建),但是直到那么(在链接器之前)编译器没有预定义函数的定义,那么为什么它没有给出任何错误?

在下面的 C 虚拟程序中,编译器给出错误 undefined reference to `f1' 显然是因为它找不到函数定义,但为什么同样的情况不适用于预定义函数。我的意思是他们也应该给出错误。

#include<stdio.h>
void f1();
int main()
{ f1();
return 0;
}
c linker compiler-construction function-definition
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.