宏定义中的“#”与“##”
宏定义在C/C++中使用的非常多,一方面定义一些常量,另一方面定义一些通用函数,但是有些宏定义实现较为复杂,尤其是很多带#或##的宏定义,令很多人读起来很不解,下面就简单介绍一下宏定义中的#和##。
10年积累的成都网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有阿坝州免费网站建设让你可以放心的选择与我们合作。
- 宏定义里面有个##表示把字符串联在一起。如:
#include
#define CAT(x,y) x##y
int main()
{
char helloworld[] = "hi, hello world!";
printf("%s", CAT(hello, world));
return 0;
}
- 宏定义中的#表示将其变为字符串。如:
#include
#include
#define STRCPY(a, b) strcpy(a ##_p, #b)
int main()
{
char arrr_p[]="abcdefg";
char *bb = "123456";
STRCPY(arrr, bb);
printf("%s\n",arrr_p);
return 0;
}
分享题目:宏定义中的“#”与“##”
文章URL:http://scyanting.com/article/gsccpi.html