a##b,在c语言中是什么运算?

本文介绍了一种使用C语言预编译功能的方法,通过宏定义为变量添加前缀来避免命名冲突,并给出了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a##b 实际上就是ab,但要注意实际的用法:
这应该算一个预编译的运算,在宏的定义中经常用到,比如为了和防止别人定义的变量冲突我们可以定义一个宏,使我们自己的变量都带一个my_前缀,宏定义如下:
#define MY_DECLARE(type,name)\
   type my_##name;

读者可以看看下面的例子程序:

#include<stdio.h>

#define MY_DECLARE(type,name)\
type my_##name;

void main(){
 MY_DECLARE(int,a) // 实际上宏展开为:int my_a;
 my_a=88;
  printf("%d\n", my_a);
}
 
源码:
 
#include<stdio.h>
#define MY_DECLARE(type,name)\
	type my_##name;
void main()
{
	MY_DECLARE(int,a)  //int my_a
		my_a = 88;
	printf("%d\n",my_a);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值