c/cpp避免头文件多次编译

时间:2021-09-17 10:02:22
  • 方式一:
#ifndef   _SOMEFILE_H_    //要避免宏名相同

#define  _SOMEFILE_H_

.......... // 一些声明语句

#endif
  • 方式二:
//这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。

#pragma once    // 较方式一后出现,老的编译器可能不兼容

... ... // 一些声明语句

  方式一由语言支持所以移植性好,方式二 可以避免名字冲突。

#ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。

#pragma once则由编译器提供保证。