条件编译的用法

在很多大型的项目工程中,为了方便调试和代码的区分,很多时候会使用条件编译。

(1)#ifdef、#else、#endif指令

#ifdef MAVIS
	#include "horse.h"		//如果已经用#define 定义了MAVIS,则执行这里的命令
	#define STABLES	5
#else
	#include "cow.h"		//如果已经没有用#define 定义了MAVIS,则执行这里的命令
	#define	STABLES	15
#endif

(2)#ifndef和#endif指令

这两个指令配合起来常用于头文件中,防止重复定义。一般地,当某个文件包含了几个头文件,而且每个头文件可能包含了相同的宏时,使用#ifndef则可以防止对该宏重复定义。此时,第一个头文件中的定义变成了有效定义,而其他头文件中的定义则被忽略。

#ifndef NAMES_H_
#define NAMES_H_

#define	SLEN	32

//结构申明
struct names_st
{
	char first[SLEN];
	char last[SLEN];
}

#endif

(3)#if和#endif指令

#if指令更像常规的C中的if;#if后面常跟常量整数表达式。如果表达式为非零值,则表达式为真。在该表达式中,可以使用逻辑运算符和关系运算符。

#if SYS == 1
	#include "ibm.h"		//条件表达式满足,则执行这里的命令
#endif

#if 0
	代码					//常用来屏蔽某段代码
#endif

(4) #和define之间有空格

#define = # define

(5) #if defined X

#ifdef X = #if defined X

——————————
2018.12.06
23:11

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值