内联函数:用内联代码替换函数调用.
宏:纯粹的代码替换------其为内联函数的原始实现。
区别:内联函数是按值的形势传递参数,而宏只是简单纯粹的代码替换。
注意:1:正确的宏的写法----为他的参数加上括号:#define SQURE(X) ((X)*(X))
2:如果你的宏实现了函数的功能,请尽量把它替换成内联函数(因为内联按值传递参数):比如
#define SQURE(X++) ((X++)*(X++)) -----------------X实现了两次自增运算,不符合初衷
inline int squre(int x) {x * x} ------------------------会先计算表达式的值,然后将结果传给x。