#define、#、##

使用#define定义标志符时,结尾不需要加分号

使用#define定义宏:
例:#define SQUARE(X) XX
注意SUQARE和括号之间不能有空格
使用:int ret=SQUARE(5);
预编译时括号内的数直接代替X,如果括号内是5+1
,那么会替换成5+1
5+1,而不是66,想方便使用,应该把表达式XX改为(X)*(X)
同理,若表达式为X+X,外面乘上一个数,此时分别给X加括号也不起作用,应在给整体加括号,为((X)+(X))

#define定义的宏看上去像是函数,但是不同,使用时里面可以使用其他宏,但是不能出现递归

在宏中,#+参数,不会直接读取参数的值,而是把参数名改成字符串
如:#define PRINT(X) printf(#X“的值是%d\n”,X)
使用:int a=10;PRINT(a);
即可输出:a的值是10

作用是可以把它两端的符号合成一个符号
例:#define CAT(X,Y) X##Y
使用:int shuchu=100;
printf(“%d”,CAT(shu,chu));
就会输出值100;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值