一、字符串化操作符#
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

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

被折叠的 条评论
为什么被折叠?



