文件保护符(header guard)

#ifndef 标识
#define 标识
头文件语句
#endif
这里的标识需要是可以唯一标识一个头文件的名称,可以用你头文件的名字来表示,例如stdio.h:
_STDIO_H

一般我们会为了防止头文件被包含多次,都会在每个头文件中写与如下类似的代码:

// a.h
#ifndef A_H
#define A_H
//内容
#endif
这样,你如果在两个地方都有这个语句:
#include “a.h”
那么这个头文件将被保证只被加入一次,你知道为什么会只加入一次吗?因为A_H这个宏定义哈。
然后这样其实也可以的:
如:
//a.h
什么也不加..
调用时:
第一次调用
#ifndef A_H
#define A_H
#include “a.h”
#endif
第二次调用:
#ifndef A_H
#define A_H
#include “a.h”
#endif
前者叫内部保护,后者叫外部保护。
由于外部保护经常可能会忘记写,容易被误用,所以我们推荐使用内部保护。
微软提供了一个指令使你可以更方便的保护:
#pragma once//优点:方便,缺点:无可移植性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值