#if条件编译指令行禁止

      条件编译是指按照给定的条件决定哪些源代码参与编译,而哪些源代码不参与编译,从而使一个源程序在不同编译条件下生不同的目标程序。C++提供几种不同形式的条件编译指令,可以将一个表达式或者某个宏是否被定义作为编译条件,主要用于设计便于调试的程序或可移值的程序。

      条件编译指令有多种,其结构类似于if语句结构。条件编译指令分别以#if、#ifdef或#ifndef指令开始,中间可以有#else指令,最后以#endif指令表示一条编译指令的结束。下面给出条件编译指令常用的三种形式:

 

#if...[#else]...#endif

#ifdef...[#else]...#endif

#ifndef...[#else]...#endif

      #if指令检测其后表达式的值是否为真,如果为真,则随后的源代码要参与编译,直到出#else或#endif;如果不为真,则随后的源代码不参与编译。#ifdef指令是#if defined指令的缩写,它检测其后的宏是否被定义,如果被定义过,则随后的源代码要参与编译。#ifndef指令也检测其后的宏是否被定义,但不同的是,只有当该宏没有被定义过,随后的源代码参与编译。

 

例  使用条件编译指令

 

(1)#if指令的用法

#include <iostream.h>
#define MAX 100                   //宏定义
void main()
{
	#if MAX > 99                      //条件编译
		cout << "MAX is greater than 99 !" << endl;
	#else
		cout << "MAX is small !" << endl;
	#endif
}

 

      在程序中,由于MAX定义的值大于99,所以#if和#else之间的源代码要参与编译。程序运行后显示:

MAX is greater than 99 !

 

(2)#ifdef指令用法

#include <iostream.h>
#define DEBUG												//宏定义
int main()
{
	int nDebug=50;
	int nRealse=6;

	#ifdef DEBUG												//条件编译
		cout <<"DEBUG:value of version is " << nDebug << endl;	//调试版
	#else
		cout <<"RELEASE:value of version is " << nRealse << endl;//正式版
	#endif

    #ifndef DEBUG												//条件编译
		cout <<"DEBUG:value of version is " << nDebug << endl;	//调试版
	#else
		cout <<"RELEASE:value of version is " << nRealse << endl;//正式版
	#endif

	return 1;
}

 

     在程序中,标识符DEBUG是否被#define指令定义作为编译条件。利用#ifdef指令,根据DEBUG是否被定义确定具体编译哪一条源代码。程序运行后显示:

DEBUG:value of version is 50
RELEASE:value of version is 6

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值