发布日期:2015-12-22 10:55 来源: 标签: 编程语言 C++教程 C++条件编译 C++编译命令
本章我们主要学习C++条件编译三种形式,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
C++中的条件编译,分为三种形式,分别如下:
1.#ifdef define_name
#…………..
#else
#………….
#endif
这种形式的条件编译,意思大概就是:如果定义了宏define_name,就执行#ifdef define_name到#else之前的代码,否则执行#else到#endif之间的代码,其中#else可以省略。
2.#ifndef define_name
#…………………
#else
#………………..
#endif
含义:如果定义了宏define_name,就执行#else到#endif之间的代码,否则执行#ifndef define_name到#else之间的代码,其中#else也可以省略。
3.#if 表达式
#……….
#else
#……………
#endif
这种形式的宏,跟if和else的用法差不多,如果表达式的值为真,则执行#if 表达式 到#else之间的代码,否则执行#else到#endif之间的代码,其中#else也可以省略。
有时我们可能会不止判断两种条件,可能有多种,类似:if……else if…..else if ……else ,这时我们就完全可以使用#elif来完成我们想要的条件编译
#if 表达式
#………..
#elif 表达式
#………..
#else
#……….
#endif
另外还有一种宏有点特殊,如下:
#if defined(__sgi)
    cout << "__sgi" << endl;
#endif
这小段代码的意思是:如果定义了宏__sgi,条件表达式的值为真,否则为假,然后再执行相应的代码。
其实,上述的这段小代码也可以用#ifdef来实现,看个人喜好罢了。
有时,我们看到别人写的宏,会产生疑问,如下:
#if 0
#   include<new>
#   define __THROW__BAD__ALLOC throw bad_alloc
#elif !defined(__THROW__BAD__ALLOC)
#   include<iostream>
#   define __THROW__BAD__ALLOC cerr<<"out of memory"<<endl;exit(1)
#endif
我们平时用if和else时,如果if条件下面有多个表达式语句,我们要用{}将其括起来,宏中的可以不用{}将其条件判定下面的多个表达式语句括起来。

相关评论

专题信息
    C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。