类型:转载 责任编辑:asp 日期:2007/03/01
宏定义里面有个##和字符串的关系,
有哪位能帮我讲解一下?
推荐阅读
#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);
}