【发布时间】:2011-04-20 19:09:37
【问题描述】:
在 C(或基于 C 的语言)中,可以愉快地使用以下语句:
#include "hello.h";
瞧,hello.h 中的每个函数和变量都是自动可用的。
但它实际上做了什么?我浏览了编译器文档和教程,并花了一些时间在网上搜索,但我对神奇的#include 命令形成的唯一印象是它“复制粘贴”了hello.h 的内容而不是那一行。肯定不止这些。
【问题讨论】:
-
如果有任何安慰,预处理器还可以插入特定于实现的注释,以便如果/当生成调试信息时,它会正确获取行号。如果它确实具有复制粘贴的效果,则调试器将不知道“真实”源文件和行号。此外,
__FILE__和__LINE__必须像在复制粘贴之前一样被替换。不过,就程序的意义而言,就是复制粘贴。