gpt4 book ai didi

c++ - C 预处理器指令和链接

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:01 25 4
gpt4 key购买 nike

#include 指令将导致在编译前将头文件的内容放入源代码中:例如,如果我包含 stdio.h,预处理器将把 stdio.h 的所有内容放入源代码中然后编译不是吗?

那么让我们假装我只是在我的代码中使用 printf() 函数。因此,在编译之后和链接之间肯定会发生一些事情,这将删除头文件中包含的所有函数实现,并且只在可执行文件的导入表中插入 printf() 函数实现,知道所有其他函数是用源代码编译的。你能给我解释一下吗?

最佳答案

printf 函数实际上并不在头文件中,它在链接器自动链接到可执行文件的库中。

头文件应该只包含函数原型(prototype),即函数的声明而不是定义。由于头文件中没有函数定义,实际上不会为它们生成代码,编译器将确保只有您实际调用的函数才会在生成的目标文件中获得一个条目,以便链接器知道它。

关于c++ - C 预处理器指令和链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19682654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com