![]() ![]() |
|
C++宏定义中的##和#的区别 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:38:35 文章录入:杜斌 责任编辑:杜斌 | |
|
|
1. 宏定义里面有个##表示把字符串联在一起。如: #include <stdio.h> #define CAT(x,y) x##y int main() { printf("%s", CAT("hello", " world")); return 0; } 2.宏定义中的#表示将其变为字符串。如: #include <stdio.h> #include<string.h> #define STRCPY(a, b) strcpy(a ##_p, #b) int main() { char arrr_p[]="abcdefg"; char *b = "123456"; STRCPY(arrr, b); return 0; } 结果为把b变成了字符串,可见#b的功能是将所有类型名都变成了字符串。 另,a、_p和##有没有空格不影响结果。 |
|
![]() ![]() |