c++ #ifndef,ifndef和#define,#endif?有何用

2024-12-27 19:49:12
推荐回答(2个)
回答1:

这是预处理命令
#ifndef _HEAD_H //就是如果没有定义宏_HEAD_H
#define _HEAD_H //那么就定义宏_HEAD_H

//添加你的头文件内容

#endif //结束if

还有类似的#ifdef #undefine可以从字面意思理解。

加上以上的宏是未了防止头文件被重复引用,当编译器第一次编译头文件的时候,会定义_HEAD_H,然后如果还有文件引用了该头文件,但_HEAD_H已经被定义了,所以就不会在去编译你的头文件添加的内容。

这个就是条件编译

回答2:

宏命令,他们类似条件语句。

#ifndef -- 如果没有定义什么东西
#define -- 则定义某东西
#endif -- 宏 条件语句结束符号

宏 条件语句 在程序编译的第一阶段执行。执行完,再编译C,C++程序部分。