宏定义里面有个##和字符串的关系
#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); 
}
posted on 2010-03-22 22:22 seedshopezhong 阅读(154) 评论(0)  编辑 收藏 引用 所属分类: c语言
只有注册用户登录后才能发表评论。