C语言宏定义"#","##"巧妙用法

C语言宏定义的巧妙用法

在我学习32的过程中发现了这样一段代码:

/*信息输出*/
#define EEPROM_DEBUG_ON         1

#define EEPROM_INFO(fmt,arg...)           printf("<<-EEPROM-INFO->> "fmt"\n",##arg)
#define EEPROM_ERROR(fmt,arg...)          printf("<<-EEPROM-ERROR->> "fmt"\n",##arg)
#define EEPROM_DEBUG(fmt,arg...)          do{\
                                          if(EEPROM_DEBUG_ON)\
                                          printf("<<-EEPROM-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\
                                          }while(0)

这种代码是参考Linux内核写出来,方便我们在32使用过程中检测信息,返回错误,以及程序调试。我相信大部分人会发现,对于宏的了解绝对没有自己想像中的那么多。

下面就来讲讲宏:

C语言中的宏定义

#define是预处理器处理的单元实体之一
#define定义的可以出现在程序的任意位置
#define定义之后的代码都可以使用这个宏

C语言中的宏常量
#define定义的宏常量可以直接使用
#define定义的宏常量本质为字面量

1、宏可以像大多数函数一样被定义,我记得某公司出过这样一道面试题,要求用宏定义来比较

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值