#include叫做文件包含命令,用来引入对应的文件,一般写法是引入对应的.h文件,也就是头文件;但其实下面这句话才是include的精髓,Include的处理过程:
“是编译时,将include的文件内容,插入到对应位置”
也就是内容的复制粘贴
直观体验 #include 未命名文件,能行吗?
#include "debug_file"
int main(void)
{
return 0;
}
gcc -E Untitled-1.c -o out.i 输出编译的中间文件
可以看到debug_file的信息,直接在out.i中被展开
头文件会被重复包含吗?
这就要看我们的头文件了,头文件最开始的时候,都会有这么一句
#ifndef __XXX_H__
#def __XXX_H__
…
#endif
第一次出现包含 头文件.h 的命令时,__XXX_H__ 宏是没有定义的。预处理器因此插入 #ifndef 和 #endif 之间的内容,这段内容包含了__XXX_H__ 宏的定义。嵌入头文件.h文件之后,#ifndef 条件就会为 false,预处理器会忽略 #ifndef 和 #endif 之间的内容。
公众号链接:
扫一扫关注见更多内容