C++里面保护宏的用法

来源:互联网 发布:淘宝高仿衣服店推荐 编辑:程序博客网 时间:2024/06/18 04:59

C++中防止头文件被包含两次有两种方法解决:

 

A:保护宏

  1. #ifndef _ABCDE_H  
  2. #define _ABCDE_H  
  3. /*  
  4. 代码部分  
  5. */  
  6. #endif 

在被包含过一次之后,宏_ABCDE_H已经有了,下次再碰到就会略过从#define _ABCDE_H开始到#endif之间的代码


B:还有一种特定编译器支持的指令:

  1. b.#pragma once 

能保证该文件(物理上的)只被编译一次,也能起到防止重复包含的作用

但这2种方式是有区别的:

a.Macro guard可移植性好,绝大多数编译器都支持,而且万一不小心拷贝了几分相同的代码也不会出问题,但你得确保这个宏名不会与其他的宏冲突,否则等编译器报出一大堆错误的时候你可能会觉得莫名其妙;

b.#pragma once指令简单,它能保证该文件(物理上的)只被编译一次,不用去费劲的想不同的宏名,但如果有几份该文件的拷贝,显然起不到作用。

 

原创粉丝点击