在某些高版本中可以使用 #pragma once
,这里区别一下#ifundef
和#pragma once
#pragma once
兼容性不好,不是所有编译器都支持,#ifundef
是C/C++的标准,所有编译器都支持#pragma once
将作用与整个文件,#ifundef
可以自定义作用范围#pragma once
可以防止同文件引入,但是不能防止同内容文件引入;#ifundef
既可以防止同文件一如,也可以防止同内容引入#pragma once
声明简单,#ifundef
每次定义时需要想一个宏名#pragma once
比#ifundef
具有更好的编译性能