c++预处理命令之条件编译

本文介绍了C++的预处理命令,包括空指令、#include、#define、#undef、条件编译(#if, #ifdef, #ifndef, #elif)、#endif、#error以及宏定义中的#运算符用于字符串化的功能。" 132752103,7502292,微信小程序源码:情侣头像&动态壁纸,"['微信小程序', '小程序源码', '前端开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用指令的用途
            

#空指令,无任何效果
#include包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef如果宏已经定义,则编译下面代码
#ifndef如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息


#define指令
#define预处理指令是用来定义宏的。该指令最简单的格式是:首先神明一个标识符,然后给出这个标识符代表的代码。在后面的源代码中,就用这些代码来替代该标识符
#defineMAX_NUM10
intarray[MAX_NUM];
for(i=0;i<MAX_NUM;i++)/*……*/

2.带参数的#define指令
#defineCube(x)(x)*(x)*(x)

intnum=8+2;
volume=Cube(num);

展开后为(8+2)*(8+2)*(8+2);

#运算符

出现在宏定义中的#运算符把跟在其后的参数转换成一个字符串。

#definePASTE(n)"adhfkj"#n
int main()
{
printf("%s",PASTE(15));
}

##运算符
##运算符用于把参数连接到一起。预处理程序把出现在##两侧的参数合并成一个符号.
#define NUM(a,b,c)a##b##c
#define STR(a,b,c)a##b##c
int main()
{
printf("%d",NUM(1,2,3));
printf("%s",STR("aa","bb","cc"));
}

#if 指令如果给定条件为真,则编译下面代码  #endif指令用于终止#if预处理指令。
#define DEBUG 0
int main()
{
#if DEBUG
printf("Debugging");
#endif
printf("Running");
//getchar ();
}

#ifdef和#ifndef
#define DEBUG

int main()
{
#ifdef DEBUG
printf("yes");
#endif
#ifndef DEBUG
printf("no");
#endif
//getchar();
}

#else指令用于某个#if指令之后,当前面的#if指令的条件不为真时,就编译#else后面的代码。#endif指令将中指上面的条件块。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值