C++宏定义中的##和#的区别 |
|
www.nanhushi.com 佚名 不详 |
我们用一来实例来学习一下C++宏定义中的## 和#的区别,首先我们来定义一个宏:#define STRCPY(a, b) strcpy(a ## _p, #b) 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和##有没有空格不影响结果。
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: C++中文件的读写实现方法 下一篇文章: 谈谈C++内存越界问题及解决方法 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|