在宏定义中可以使用 ## 运算符对两个字符串进行拼接。例如:在上述代码中,我们定义了一个宏定义 CONCAT(a, b),它的作用是将 a 和 b 两个字符串拼接在一起。在 main 函数中,我们使用 CONCAT(x, y) 宏定义将两个字符串 x 和 y 拼接成了 xy,并输出它的值。宏定义中的条件编译 在宏定义中可以使用...
charA_param=0;charB_pramm=0;//添加宏定义#defineOBJECT A#defineDEFINE_(X) X##_param//一次定义#defineDEFINE(X) DEFINE_(X)//再次定义#definePARAM DEFINE(OBJECT)voidfun(){// DEFINE_(OBJECT)=100; 这个操作是拒绝的,它就是直接拼接不被替换DEFINE(OBJECT)=100;//这个操作就神了,先替换再拼接,...
intA_param=0;//添加宏定义#defineNUM A#defineDEFINE_(X) X##_param//首次定义#defineDEFINE(X) DEFINE_(X)//再次定义voidfun(){// DEFINE_(NUM)=100; //这个操作会报错,它就是直接拼接不被替换。即被替换为NUM_param=100;DEFINE(NUM)=100;//这个操作就🐮🍺了,先替换再拼接。即被替换为A_para...
有一个需求是将一个宏和一个字符串拼接,然后在代码中拿到这个字符串,记录一下。 方案 首先,我们知道非常常见的一个宏的拼接和展示字符串的宏定义: #defineCONTACT(x,y) x##y//拼接#defineSTR(x) #x//转字符串 这种宏定义在开发中是很常见的!
PRIMITIVE_CAT(X,Y));所以拼接结果是PRIMITIVE_CAT(X,Y) -> XY -> 2. 拼接后得到了宏XY,直...
宏定义中的#和##的作用,#用于将宏转化成字符串,##用于拼接两个宏,举4个例说明如下 #define STR(x) #x#define STR2(x) STR(x)#define CONNECT(a, b) a##_##b#define CONNECT2(a, b) CONNECT(a, b)#define AA 11#define BB 22/* #的作用是将宏转字符串,##是拼接2个宏。* 个人觉得#和...
c语言之宏定义中的##和# 1.##:用于拼接操作 实例: #include<stdio.h>#include<iostream>#defineCONCAT(parm1,parm2) (parm1##parm2)intmain() {intres = CONCAT(1,2); printf("%d\n", res);char* ptr = CONCAT("nihao!","zaijian");...
在C语言中,宏定义可以通过“#define”指令来进行定义。 拼接是指将两个或多个字符串连接在一起。而结构体是C语言中一种自定义的数据类型,用于存储不同类型的数据。在C语言中,我们可以通过宏定义来拼接结构体。 宏定义的基本语法为: ``` #define 宏名 宏体 ``` 其中,宏名是标识符,宏体可以是字符串、...
这段代码的意思是,如果定义了DEBUG宏,那么就使用printf函数输出调试信息。否则,就使用一个空语句块来忽略这个宏。在代码中使用DEBUG_PRINT宏可以方便地输出调试信息,而在正式发布时只需要将DEBUG宏注释掉即可。 宏定义技巧六:使用宏定义进行字符串拼接 在C/C++中,我们可以使用宏定义来进行字符串拼接,从而方便地生成一...