作用:
防止头文件二次编译。也就是说,防止在对工程进行一次编译的时候,由于此工程内多个文件都引用到了某一个头文件,造成该头文件被多次编译,造成“重复定义”、“重复包含”等error。
区别:
#ifndef _MARCO
#define _MARCO
handling...
#endif
1,可跨平台
2,当两个文件中使用同一个宏定义时,会产生冲突
3,效率低,因为递归包含时会多次打开该头文件
#pragma once
1,Windows专用
2,当同一个文件被放在两个不同路径下,这时进行#include,不能避免重复定义
3,效率高,因为递归包含时只会打开一次文件