C语言中的#和##

在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 ;
}
运行结果:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值