C++中的编译预处理

预处理程序又称预处理器,它包含在编译器中。预处理程序首先读源文件。预处理的输出是“翻译单元”,它是存放在内存中的临时文件。编译器接受预处理的输出,并将源代码转换成包含机器语言指令的目标文件。

预处理程序对源文件进行第1次处理,它处理的是预处理命令。C++提供的预处理命令主要有3种,分别是:文件包含命令、宏定义命令和条件编译命令。

这些命令在程序中都是以#开头的,每一条预处理命令必须单独占一行。由于不是C++的语句,因此在结尾没有分号。

1、文件包含命令

所谓“文件包含”是指将另一个源程序的内容合并到当前源程序中。C++程序提供了#include命令用于实现文件的包含操作,它有下列两种格式:

#include <文件名>    // 使用<>括起来的头文件一般存在于C++系统目录中的include子目录中  

#include "文件名"    // 使用双引号括起来的头文件一般在当前文件所在的目录下

2、宏定义命令

使用#define来进行宏定义,宏定义一般有两种形式:不带参数的宏定义和带参数的宏定义。

#define PI 3.1415926     //不带参数的宏定义
#define S(a,b) a*b       //带参数的宏定义


#undef PI                //终止PI的作用域

使用宏定义的优点是减少了程序中重复书写某些字符串的工作量和出错率,提高了程序的通用性。

 3、条件编译

对源程序中一部分内容只在满足一定条件时才进行编译,也就是对一部分内容指定编译的条件,这就是条件编译。C++提供的条件编译命令有以下3中形式:

//第一种
#ifdef DEBUG
cout << "x = " << x << " ,y = " << y << " ,z = " << z << endl;
#else
cout << "hahahahaha" << endl;
#endif


//第二种

#ifndef _头文件名_H
#define _头文件名_H
...
#endif


//第三种
#if 表达式1
    程序段1
#elif 表达式2
    程序段2
#elif 表达式3
    程序段3
...
#else
    程序段n
#endif

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_黄岛主_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值