头文件的具体作用
在网上看到这么一段话:
头文件并不参加链接和编译。编译器第一步要做的就是简单的把头文件在包含它的源文件中展开。不知你是否能理解这句话。也就是头文件里面有什么内容,通通把它移到包含这个头文件的源文件里。(我觉得这是个很重要的概念,可以帮助我们简化理解编译链接的过程,包括理解头文件中定义静态变量或静态函数是怎么回事)。编译器经过这一步转换后剩下什么呢?就是一堆cpp文件了。而头文件已经不再是编译器需要关心的东西了。编译器接下来就要处理这一堆cpp文件了。
那加了ifndef的头文件被多次引用的话,是不是该头文件对应的CPP文件只展开一次?还有就是那个展开具体是一个怎样的过程?
防止头文件重复被引用!
而且如果已经引用了该头文件,将不再引用该头文件的!
[解决办法]