在替换序列

本文深入探讨了C/C++编程中宏定义接受的特殊运算符(#和# #),解释了如何使用这些运算符进行参数替换、程序部分代码的包括或排除,以及如何利用#ifdef和#ifndef指令控制代码编译。

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

功能宏定义接受两个特殊运算符(#和# #)在替换序列:

如果操作者#之前使用的参数是用于替换序列,参数是由一个字符串替换(如果它是包含在双引号)

#define str(x) #x
cout << str(test);

这些指令可以包括或丢弃的一个程序的部分代码,如果满足一定的条件。

#如果定义了允许的第一个程序,只是如果宏被指定为参数已定义的编译,不管它的价值。例如:

在这种情况下,代码int表[ table_size ]线;如果只编译table_size先前定义的#定义,独立于它的价值。如果它没有被定义,这条线将不会包含在程序编译。

#则是完全相反的:# ifndef和#判断指令之间的代码只编译,如果指定的标识符以前没有被定义。例如:

1
2
3
4
#ifndef TABLE_SIZE
#define TABLE_SIZE 100
#endif
int table[TABLE_SIZE];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值