##与#

来源:互联网 发布:三星s7e怎么与mac连接 编辑:程序博客网 时间:2024/04/26 08:02

 

宏定义里面有个##和字符串的关系,
有哪位能帮我讲解一下?
---------------------------------------------------------------

#include <stdio.h>

#define CAT(x, y)  x##y    //将x,y连接起来形成"xy"的形式

void main()
{
printf("%s", CAT("hello", " world"));
}
---------------------------------------------------------------

出现在宏定义中的##是用来告诉编译器,将两个字符串系在一起。
---------------------------------------------------------------

一个#代表将一个宏参数转变为一个string ,例如
#include<stdio.h>
#define stringer( x ) printf( #x "/n" )

void main()
{
    stringer( haha ); 
    
}

这里的这个#将x转化为一个string
这个宏就是要将x传进来的东西打印到屏幕上
---------------------------------------------------------------

只有一个是将其变为字符串
#include <stdio.h>

#define TRACE(x) printf(#x" is: %d/n", x)

void main(void)
{
int i=3;
TRACE(i);
}