#ifdef与#ifndef的作用

这两条指令的使用在c++里面叫条件编译,这两条指令叫条件预处理指令.刚好手上有本c++大学教程是这样说的"条件编译是能够让程序控制预处理指令的执行和程序代码的编译.每一个条件预处理指令计算一个常量整数表达式的值,以决定代码是否编译.不能在预处理指令中计算强制类型转换表达式,sizeof表达式和枚具常量."
条件预处理指令的结构与if选择结构非常相似.
如:

#if !defined(null) //是否定义了null
#defined null 0 //如未定义,则定义null为0
#endif //结束条件编译


可以把#if define(name)和#if !define(name)缩写为#ifdef和#ifndef
同样在编译程序的时候还有用处
如不想编译一段代码可采用以下的方法:

#if 0
不编译的代码
#endif


起作用主要是防止头文件多次应用带来的重复包含。

type.h:
#ifndef _INLUTDE_TYPES_H_
#define _INCLUDE_TYPES_H_
typedef unsigned char          uchar  ;
typedef unsigned short         ushort ;
#endif

rgstruct.h:
#ifndef _INLUTDE_TYPES_H_
#include "types.h"
#endif
#include "rgdef.h"
#include "eqstruct.h"

combine.h:
#ifndef _INLUTDE_TYPES_H_
#define _INCLUDE_TYPES_H_
typedef unsigned char          uchar  ;
typedef unsigned short         ushort ;
typedef unsigned int         nosame ;
#endif


参考:

http://www.programfan.com/club/showpost.asp?id=134

http://bbs.youkuaiyun.com/topics/20020353





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值