首页 > 心得笔记 > 头文件是如何参与编译的

头文件是如何参与编译的

2012年12月24日  3,116 views 发表评论 阅读评论

最近在看C语言的编译与链接的内部实现,这是比较基础的内容,但是又往往很容易被忽视,因为各种IDE尤其是VS的强大集成功能将编译和链接的实现给隐藏了。

至于编译与链接的具体过程并非本文内容,本文实际要讲的是我在自学时发现的一个有趣内容,头文件的编译参与问题。

有些文章说过头文件不参与编译,其实严格来说头文件是参与编译的。

在预编译源文件的时候,凡是遇到#include<XX>的时候,就会把XX的文本内容全部复制到相应的位置。

然后被编译的源文件其实是 【头文件文本内容】+【源文件文本内容】

这有点宏定义的感觉~

所以,下面这段代码是真的可以用的!

abc.h

 1,2,3

main.cpp

#include <iostream>
#include <string>

int main()
{
    int a[] = {
        #include "abc.h"
    };

    for (int i = 0;i< 3;i++)
    {
        std::cout<<a[i]<<std::endl;
    }

return 0;
}

头文件编译



声明:未作说明,则本文为代码至上原创。转载务必注明出处
注意:转载须保留全文,如需修改请 联系作者
本文永久地址:http://codeup.org/archives/560


我要分享到:

新浪微博 腾讯微博 人人 Twitter Facebook 网易微博 鲜果 Follow5
分类: 心得笔记 标签: