char* str = INT_TO_STR(num); printf("整型转换为字符串:%s\n", str); return 0; } 在上面的代码中,我们定义了一个宏INT_TO_STR,它使用了#操作符来将传入的整型参数转换为字符串。然后,在main函数中,我们声明了一个整型变量num并赋值为123。接着,我们使用INT_TO_STR宏将num转换为字符串,并将结果...
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)); } ...
经典代码-C宏 #转字符串【瓦特芯 笔记】 在调试C语言程序时,有时需要打印宏的名字。可以通过定义宏,宏名字的数组来获得。 例如: #include <stdio.h> #define MACRO_STR(x) {x, #x} typedefstruct_macro_str { intid; char*name; }MACRO_STR_T; typedefenum_color{ RED, GREEN, BLUE, }COLOR; MACR...
项目中有个头文件中定义了一个宏定义,比如是 #define CFG_LOGGER_NAME uart 然后,在某个C文件中需要讲这个3转换成对应的字符串类型,即为"uart";很明显,如果按以下的几种方式定义,肯定得不到期望的结果: 方式1: #define CFG_LOGGER_NAME_STR "CFG_LOGGER_NAME" 方式2: #define CFG_LOGGER_NAME_STR #CFG...
#define STR2(R) STR1(R) intmain() { printf("sample rate = " STR2(SAMPLE_RATE)"\n"); return0; } 运行输出 sample rate = 16000 注意: 二级stringfication会将宏定义原样输出,即,如果16000加上括弧(有经验的程序员都懂),则STR2输出的也是带括弧的字符串,这通常不是你想要的 ...
#define PI 3.14#define _STR(s) #s#define STR(s) _STR(s)intmain(){char*p=STR(PI);cout...
将C语言宏定义数值转换成字符串! 2019-04-05 18:43 −... LiuYanYGZ 0 5484 C\C++语言中的宏多重展开和递归展开 2019-12-05 15:17 −宏定义中的#,## 1. 宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组 2.记号粘贴操作符(token paste operator): ## ... ...
printf函数的格式控制符就是在前面那个字符串里取的,所以他是一个字符串必然也是格式控制符,我觉得应该是因为宏的关系所以引入的#号来使宏参数字符串化。
宏定义的作用相当于给指定的字符串起了一个别名。...不带参数的宏的定义方式如下(这也是我们经常用到的宏定义) #define 宏名 字符串 //没有分号,说没有分号倒不如说最好不要加分号 这里说下原因吧:因为宏定义它并不是C语言的语句,所以不用加分号...宏名实际上就是
大小写字母相互转换的宏,并将用户输入的一个字符串中的大小写字母互换【答案】include define isupper(c) ((c)>='a (c)