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、宏可以像大多数函数一样被定义,我记得某公司出过这样一道面试题,要求用宏定义来比较