一直在嵌入式中混日子,很多知识点被遗忘的差不多了都,最近也是项目setting需要用宏定义来实现不同setting的区分,在makefile里倒是加好了宏,但是逻辑运算到着实有点手生就搜了搜资料,这里也给自己记录下宏的知识点吧。
不过呢先说一下我对宏定义的理解,宏定义就想象成为本替换,想了解清楚就文本替换还原回去就能明白了。
下面我们就开始进入主题,来进一步了解一下宏:
1. 宏简单实用演示:
1.1宏的简单使用说明
#define square(x) x*x
/*
*下面我们就来用一下这个宏
*/
printf("result = %d\n",square(5));
/*无可厚非,结果就是5*5=25*/
int a = 5;
printf("result1 = %d\n",square(a+1));
/*第一眼可能会脱口而出36,
*但是你文本替换一下就是这个样子x==a+1,所以x*x=a+1 * a+1=11
*/
//上面的可能不是你的本意,你的本意是要36这个值,就要用下面这个种方式
#undef square
#define square(x) (x)*(x)