宏定义又称为宏代换、宏替换,简称“宏”。 简单地说就是直接替换相应的变量字符。
格式:
#define 标识符 字符串
例如:
#define PI 3.141592653
那么:Area = PI*3*3 = 3.141592653*3*3
再进一步:
#define S(a,b) a*b
Area = S(3,5) = 3*5 =15
再复杂一点:
求取一个正方形的面积的宏可以定义为:
#define S(r) ( r)*(r)
有人会奇怪为什么单独一个r也要加括号,下面就用一个例子说明
Area = S(b-a) =(b-a)*(b-a)
而如果宏定义为如下:
#define S(r) r*r
则直接替换为
Area = S(b-a) = b-a*b-a
宏的替换是简单替换,没有考虑运算符的优先级问题,也不会做任何计算。
再举个例子强化一下:
#define mod1(a,b) (a)%(b)
#define mod2(a,b) a%b
结果如下:
mod1(7-4,3) = (7 - 4)%3 = 0
参考资料: 来自网络