这一道题目一开始看的有点迷惑,不了解宏定义函数的性质,一开始看上去还以为应该是54,但其实应该是
z =2*(N+(N+1)*5+1)=48
宏定义函数只是在代码编译阶段做一个简单的替换,没有任何语法和优化的空间,因此宏定义函数没有正常函数所需的开销,包括:开辟空间,记录返回地址,形参压栈,从函数中返回释放堆栈。
1 宏定义函数只能完成一些简单的替换,因此他的使用场景是有限制的,即使是宏定义函数, 也只是完成简单的功能, 不能真正的替代函数。
2 由于只是做一个替换,因此使用的时候需要谨慎,避免出现符号优先级而出现的低级错误。