在C/C++中#include所包含的头文件里面必须显式声明#ifndef__HEADER_H_DEFINE__#define__HEADER_H_DEFINE__#endif或者有些编译器支持#pragmaonce编译器完全有能力在执行预处理指令#include时使同一个文件只包含一次,但是却没有这么做,为什么?是否有需要包含同一个文件超过一次的情况?
2 回答
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
1、C/C++的函数和变量都可以重复声明。条件判断是为了防止不必要的函数被声明,从而造成冲突。他是为了避免重复编译,而不是解决重复声明。2、#pragmaonce同一个文件不会被编译多次。注意这里所说的同一个文件是指物理上的一个文件,而不是指内容相同的两个文件。C/C++没有Java那种每个类对应一个文件的规定,所以即使使用了#pragmaonce也应该在头文件里面加上条件判断。
添加回答
举报
0/150
提交
取消