语法
#ifndef X
#define X
#endif
作用
#ifndef指示符检查预编译常量X是否已宏定义,如果没有,则指示符判断为真,从#define到#endif之间所有语句都被包含进来编译,如果判断为假,则#define到#endif之间所有语句都被忽略
条件编译可以有效防止同一文件被反复包含,即使相同内容被放在不同物理文件中
条件编译具有较高的可移植性,但编译速度慢一些
也用于防止同一文件被重复包含
这里的同一文件指同一物理文件仅被包含一次
如果同一内容放在两个不同物理文件中,则#pragma once不能发现
#pragma once是编译器相关的,即不是所有编译系统均支持,故可移植性不高
一些低版本编译器不支持
目前,基本所有编译器均支持
跨平台的程序,最好采用条件编译