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)); } ...
二级stringfication会将宏定义原样输出,即,如果16000加上括弧(有经验的程序员都懂),则STR2输出的也是带括弧的字符串,这通常不是你想要的 可以这样绕过: 给SAMPLE_RATE定义一个别名,并给别名加上括弧,在需要整型时用别名,在需要字符串时用原名 #include<stdio.h> #define SAMPLE_RATE_CONFIG 16000 #define SAMPLE...
将C语言宏定义数值转换成字符串! - LiuYanYGZ - 博客园 (cnblogs.com) #define STR1(R) #R #define STR2(R) STR1(R) Str.Append(_T(STR2(CURRENT_YEAR)));
#define PI 3.14#define _STR(s) #s#define STR(s) _STR(s)intmain(){char*p=STR(PI);cout...
项目中有个头文件中定义了一个宏定义,比如是 #define CFG_LOGGER_NAME uart 然后,在某个C文件中需要讲这个3转换成对应的字符串类型,即为"uart";很明显,如果按以下的几种方式定义,肯定得不到期望的结果: 方式1: #define CFG_LOGGER_NAME_STR "CFG_LOGGER_NAME" ...
数字转化为相应的字符串 写一个函数实现将任意一个正整数(long)转化为一个相应的字符串 如:将 123转化成 “123”。 void num2str(int num,char *str); main(){ ...; char str[20]={0}; r=num2str(1234,str); printf("%s\n",str); } ...
宏定义字符串拼接可以使用宏运算##,即 #define strcat(x,y) x##y。 ##运算符可以将两个记号(例如标识符)“粘”在一起,成为一个记号。如果其中一个操作数是宏参数,“粘合”会在当形式参数被相应的实际参数替换后发生。考虑下面的宏: #define MK_ID(n) i##n 下面的声明使用MK_ID创建了3个标识符: int...
将C语言宏定义数值转换成字符串! 2019-04-05 18:43 −... LiuYanYGZ 0 5484 C\C++语言中的宏多重展开和递归展开 2019-12-05 15:17 −宏定义中的#,## 1. 宏中的参数前面使用一个#,预处理器会把这个参数转换为一个字符数组 2.记号粘贴操作符(token paste operator): ## ... ...
(#x) // 将x变成字符串(如果x是宏,展开) #define _S(x) __S(x) // 将x变成字符串(如果x是宏,展开) #define _ST(x) __ST(x) // 将参数连接并转成字符串(遇宏则展开) #define _TO_STR(x, y) _S(x) "" _S(y) #define _TO_STRT(x, y) _T( _S(x) "" _S(y) ) bool ...