宏定义和const的区别
宏定义没有类型,不开辟空间,做的只是在预编译时的替换,没有分号,否则会把分号也当成变量替换掉。const就是申请一个常变量,有类型,需要开辟一个空间。
宏定义常见的考点
如上图所示,如果是MAX(++a,b),这样a会增加两次,例如a如果是10,调用之后a的值变为12。
比如这个例子,如果不加括号的话,就会变成a + (a * b) + b,造成与你预想的结果不同的值。
一些常见的宏
#ifndef,意思是如果没有定义就进行操作,可以防止一些头文件重复引用,常常与#endif搭配。