头文件包含命令#include的效果与直接复制粘贴头文件内容的效果是一样的,预处理器实际上也是这样做的,它会读取头文件的内容,然后输出到 #include 命令所在的位置。 头文件包含是一个递归(循环)的过程,如果被包含的头文件中还包含了其他的头文件,预处理器会继续将它们也包含进来;这个过程会一直持续下去,直到不再包含...
//头文件 #endif 1. 2. 3. 4. 5. 6. 7. C/C++标准支持#ifndef的方式,当头文件第一次被包含时正常处理 _HEADNAME__H__ 被定为1,当再次包含相同头文件时就会被忽略,但预处理时仍会将头文件读入加长编译时间。_HEADNAME_H__会被改为包含的头文件名。以防冲突。它不但可以保证同一个文件不会被包含...
#ifndef _FILENAME_H_ #define _FILENAME_H_ 头文件内容 #endif
一些头文件的重复包含只会增加编译工作的工作量,不会引起太多问题。这只是低效的编译。某些头文件的重复包含会导致错误,例如在头文件中定义全局变量(虽然不建议使用此方法,但C规范允许使用此方法)如果头文件包含在循环中,则取决于编译器。有些会智能地处理它,就像include one一样,有些会报告错误,有些会死锁,导致编...