C++中#if #ifdef 的作用

来源:百度知道 编辑:UC知道 时间:2024/06/02 01:48:31
用编译器经常会自动生成这些,我自己很少用,想知道经常用的这些的介绍,谢谢了。
谢谢大家的回答
有没有那本书里面有比较详细一点的介绍类似的这些作用,或者给个超链接

#if和#ifdef都是C++中的条件编译符号。
C++的预处理包含宏、文件包含和条件编译三个技术。

一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”(conditional compile)。

#if后面可以自己写条件编译的条件

#ifdef后面是写一个宏,如果宏已经定义泽编译,否则不编译。

一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件
编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。
条件编译命令最常见的形式为:
/////////
#ifdef 标识符
程序段1
#else
程序段2
#endif

它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
其中#else部分也可以没有,即:
#ifdef
程序段1
#denif

这个主要有两个功能吧,一种,作为预处理命令,防止文件重复包含,比较常用, 另一种是在进行编译调试或者测试的时候用到,进行分支选择。

基本每一本c语言书中都会首先讲到的,谭浩强的书比较好

预处理命令。
定义头文件的时候会用到
因为同一个函数不能定义2次。
用这个就能检查是否定义过

预处理命令。
防止文件重复包含

防止重复编译,重复定义

条件编译,很长的,解释不清楚