龙空技术网

C++中的 # 和 ##

柚子树cc 85

前言:

现在姐妹们对“未定义标识符啥意思”都比较注重,各位老铁们都需要了解一些“未定义标识符啥意思”的相关文章。那么小编在网上网罗了一些关于“未定义标识符啥意思””的相关文章,希望兄弟们能喜欢,小伙伴们快快来了解一下吧!

#:构串操作符

构串操作符 # 只能修饰带参数的宏的形参,它将实参的字符序列(而不是实参代表的值)转化为字符串常量

执行以下代码

#include <stdio.h>#define STRING(s)	#s#define TEXT(s)		"class"#s"info"int main(){	int integer = 999;	printf(STRING(integer)"\n");	printf(TEXT(integer)"\n");	return 0;}

输出结果:

integerclassintegerinfo请按任意键继续. . .
##:合并操作符

合并操作符将出现在其左右的字符序列合并成一个新的标识符

注意:使用合并操作符 ## 时,自身的标识符必须预先有定义,否则编译器会报“未定义标识符”错误字符序列合并之后是标识符,不是字符串

执行以下代码:

#include <stdio.h>#include <iostream>using namespace std;#define CLASS_NAME(name)	class##name#define MERGE(x, y)			x##y##xint main(){	int classname = 10;	int aaabbbaaa = 20;	cout << "classname = " << CLASS_NAME(name) << endl;	cout << "aaabbbccc = " << MERGE(aaa, bbb) << endl;		return 0;}

执行结果:

classname = 10aaabbbccc = 20请按任意键继续. . .

标签: #未定义标识符啥意思 #未定义标识符啥意思啊 #未定义标识符是什么意思