C++ 头文件保护符

为了避免头文件的重复引用,C++有两种头文件保护机制

 

一、#ifndef与#endif

下面以example.h为例

格式:

#ifndef example_h

#define example_h

...

头文件内容

...

#endif

由于C++编译器对头文件是以预处理的方式进行的,那么编译器首次遇到这块代码时会首先发现 A 尚未被定义,于是继续执行到#endif结束。在这个过程中,第二行的#define A就会被定义,并且存到编译表内。

当编译器预处理其他包含example.h头文件时,也就是以下代码时

#include "example.h"

就会再次跳到example.h进行处理,但是发现example_h宏变量已经被定义,因此到#endif的代码就不会二次处理了。

 

 

二、

#pragma once

在头文件的最开始加入这条指令就能够保证头文件只被编译一次

#pragma once用来防止某个头文件被多次include,#ifndef,#define,#endif用来防止某个宏被多次定义。

#pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了。

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

 

文章参考引用自

http://www.cnblogs.com/yyxt/p/4253776.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值