【001 关键字】宏定义中的#和##的用法

本文详细介绍了C++预处理器中的字符串化操作符#和符号连接操作符##的功能、使用条件及注意事项。#用于将宏参数转化为字符串,忽略空格并连接子字符串;##用于连接两个标识符,形成新的标识符,要求连接后的参数名需已存在或为宏定义。在宏参数为另一个宏时,#和##不会导致宏展开。

一、字符串化操作符#

1. # 的功能:将#后面的宏参数转化成字符串。

2. 使用条件:只能用于有传入参数的宏定义中,#必须置于宏定义体中的参数前。

#include<stdio.h>
// s是宏参数
#define Str(s) #s    //功能:使用Str(s)将s转化为字符串
int main()
{
    printf(Str(HelloWorld));
    return;
}
//输出:HelloWorld

3.对空格的处理

#define example1(instr) #instr

string str=example1(abc); 将会展成:string str="abc";

        🥝 a、忽略传入参数名前面和后面的空格。

如:str
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Kashine

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

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

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

打赏作者

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

抵扣说明:

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

余额充值