c/cpp避免头文件多次编译
- 方式一:
#ifndef _SOMEFILE_H_ //要避免宏名相同 #define _SOMEFILE_H_ .......... // 一些声明语句 #endif
- 方式二:
//这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。 #pragma once // 较方式一后出现,老的编译器可能不兼容 ... ... // 一些声明语句
方式一由语言支持所以移植性好,方式二 可以避免名字冲突。
#ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。
#pragma once则由编译器提供保证。
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。