C 用宏可以转字符串与拼接字符。 举例 #include <stdio.h> #define CON(a) (B##a) //concatenate #define STR(a) #a enum{B0,B1}; int pt(int b) { printf("B%d\n",b); } int main() { printf("B" STR(0) " %d B1 %d\n",CON(0),CON(1)); pt(CON(0)); pt(CON(1)); } ...
在宏定义中可以使用 ## 运算符对两个字符串进行拼接。例如:在上述代码中,我们定义了一个宏定义 CONCAT(a, b),它的作用是将 a 和 b 两个字符串拼接在一起。在 main 函数中,我们使用 CONCAT(x, y) 宏定义将两个字符串 x 和 y 拼接成了 xy,并输出它的值。宏定义中的条件编译 在宏定义中可以使用...
#defineID 111//我们可以#definebuild_id_str CONTACT2(build_id_, ID)//在代码中获取对应的宏展示字符串char*build_id =STR2(build_id_str);print("build_id: %s\n", build_id); 将输出拼接好的字符串:build_id_111。
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...
在C语言中,宏定义可以通过“#define”指令来进行定义。 拼接是指将两个或多个字符串连接在一起。而结构体是C语言中一种自定义的数据类型,用于存储不同类型的数据。在C语言中,我们可以通过宏定义来拼接结构体。 宏定义的基本语法为: ``` #define 宏名 宏体 ``` 其中,宏名是标识符,宏体可以是字符串、...
PRIMITIVE_CAT(X,Y));所以拼接结果是PRIMITIVE_CAT(X,Y) -> XY -> 2. 拼接后得到了宏XY,直...
这段代码的意思是,如果定义了DEBUG宏,那么就使用printf函数输出调试信息。否则,就使用一个空语句块来忽略这个宏。在代码中使用DEBUG_PRINT宏可以方便地输出调试信息,而在正式发布时只需要将DEBUG宏注释掉即可。 宏定义技巧六:使用宏定义进行字符串拼接 在C/C++中,我们可以使用宏定义来进行字符串拼接,从而方便地生成一...
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;//这个操作就神了,先替换再拼接,...
C/C++ 代码编译过程中,可通过相应参数来获取到各编译步骤中的产出,比如想看被预处理编译之后的宏,使用gcc使加上-E参数。 $ gcc -E macro.c 宏的定义 通过#define指令定义一个宏。 #defineNAME_OF_MACRO value 比如,以下代码定义了一个名为BUFFER_SIZE的宏,指代1024这个数字。