#define叫做宏定义命令,它是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部原样替换成指定的字符串。 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单粗暴的替换。字符串中可以含任何字符,它可以是常数、...
1#include <stdio.h>2#defineCMEFS_PH_DIR "/mmode/cmph/"3#defineSUB_STRING "user_net_sel_mode_nam_1"45voidmain()6{7printf("拼接后的字符串为: %s\n",CMEFS_PH_DIR SUB_STRING);8} 输出结果与(1)相同。 以上都可以定义字符串以及用宏定义拼接相关的字符串。
二级stringfication会将宏定义原样输出,即,如果16000加上括弧(有经验的程序员都懂),则STR2输出的也是带括弧的字符串,这通常不是你想要的 可以这样绕过: 给SAMPLE_RATE定义一个别名,并给别名加上括弧,在需要整型时用别名,在需要字符串时用原名 #include <stdio.h> #define SAMPLE_RATE_CONFIG 16000 #define SAMP...
在宏定义中可以使用 ## 运算符对两个字符串进行拼接。例如:在上述代码中,我们定义了一个宏定义 CONCAT(a, b),它的作用是将 a 和 b 两个字符串拼接在一起。在 main 函数中,我们使用 CONCAT(x, y) 宏定义将两个字符串 x 和 y 拼接成了 xy,并输出它的值。宏定义中的条件编译 在宏定义中可以使用...
1. 定义宏 在iOS 中,我们可以使用#define来定义一个宏,通常用于常量字符串。例如,我们定义一个宏为BASE_URL,作为固定的URL前缀。 #define BASE_URL @" 1. 注释:此处定义了一个名为BASE_URL的宏,它代表了我们的基础URL。 2. 创建字符串拼接的函数 ...
否则,就使用一个空语句块来忽略这个宏。在代码中使用DEBUG_PRINT宏可以方便地输出调试信息,而在正式发布时只需要将DEBUG宏注释掉即可。 宏定义技巧六:使用宏定义进行字符串拼接 在C/C++中,我们可以使用宏定义来进行字符串拼接,从而方便地生成一些代码。例如下面的代码定义了一个宏来进行字符串拼接: #define ...
而在C中,两个用""包含的字符串,在没有任何可见字符(不包括空格,换行,tab)分隔,写在一起的时候 会当做一个字符串处理 也就是 "abc" "def"和 "abcdef"是等效的。所以 两个宏定义字符串,要拼接一起,直接写就好了 define A "a123"#define B "b456"printf("%s", A B);输出 a123b...
符号把一个符号直接转换为字符串,例如:define STRING(x) #x const char *str = STRING( test_string ); str的内容就是"test_string",也就是说#会把其后的符号 直接加上双引号。符号会连接两个符号,从而产生新的符号(词法层次),例如:define SIGN( x ) INT_##x int SIGN( 1 ); 宏被...
可用宏定义表示数据类型,使书写方便 例如: #define INTEGER int 1. 宏定义表示数据类型和用typedef定义数据说明符的区别: 宏定义只是简单的字符串代换,是预处理完成的, 而typedef是在编译时处理的 他不是简单的代换,而是对类型说明符重新命名。 被命名的标识符具有类型定义说明的功能。