为尊重原创,转发请注明出处
编写代码中,宏的使用无处不在,总结一下大概以下几种:
1、定义一些常量,或者一些基地址,方便在版本更换时,只需要适配宏,而不需要修改代码
#define GIC_CPU_BASE_ADDR (0xA0000000+0x1000)
#define PAI 3.14
需要注意的是,宏中如果有运算符的话,一定要加上括号;
2、头文件的定义
#ifndef __MY_HEAD_FILE_H__
#define __MY_HEAD_FILE_H__
........................................
#endif
或者
#ifndef OK
#define OK 0
#endif
这样可以防止头文件被重复包含或者某个变量被重复定义,因为一般一个项目中,代码量、文件都是很多,流程很复杂繁琐的,难免会有头文件被重复包含,加上这个宏的限制后,我们就不用担心编译警告或者错误了;
3、用宏来定义一些通用的代码,比如好多个函数都需要参数类型检查,我可以定义一个宏来实现
#define check_para(para,max) \
do{ \
if(para>max) \
return ERROR; \
}while(0)
这样,我可以在任何需要检查参数的地方,调用这个宏就可以了,代码看起来也更简洁。