您的位置:首页 > 编程语言 > C语言/C++

C语言中的#和##

2016-01-21 12:23 316 查看
在C语言中,#和##都是预处理指令。

#表示的是将参数转换为字符串

##表示黏贴,但是只能黏贴C语言除了关键字以外的合法标识符。在单一的宏定义中,最多可以出现#和##的组合形式。

我们来看看一个例子:

#include <stdio.h>
typedef  int   INT_32 ;
typedef  void  NULL_val ;
#define  pri(x) printf("%d\n",x)    
#define  P(x)  printf("%s---->%d\n",#x,x)
#define  S(x)  printf(""#x"---->%d\n",(x)*(x))
#define  Zero   0
#define  XNAME(x)  x ## x 
#define  Function  main 
#define  ret_val  return  
#define  MAX(x,y)  do   \
				 {         \
				 	if(x > y) {      \
				 		printf("x>y\n")	;  \
				 		break  ;           \
					}                           \
					else{                         \
						printf("x<y\n") ;         \
						break ;						\
					}                          \
				 }while(1); 

static  int  i ;
#define For(lenth)   for(i = 0 ; i < lenth ; i++)   \
					{      							\
					}			
INT_32 Function(NULL_val)
{
	INT_32 abc =1 ;
	INT_32 b = 2 ;
	
	P(abc);
	P(b);
	P(abc+b);
	S(6);
	pri(XNAME(100));
	MAX(abc , b); 
	ret_val Zero ;
}
运行结果:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: