20.2.6 inline与#define的比较

    使用#define定义函数宏时,对括号的使用要特别注意。函数宏最大的优势是摆脱了函数执行的压栈和出栈,提高了执行效率,函数宏不对参数进行类型检查,这降低了程序的安全性,从另一个角度看这也成了其优点,提高了灵活性,对函数来说,通过函数模板可实现同样的功能,使函数独立于参数。

    前面介绍过inline函数,这是一种空间换效率的做法,同样摆脱了普通函数执行时的压栈和出栈,提高了执行效率,与函数宏不同的是inline函数采用的是真正的参数传递机制,会对参数类型进行检查,这提高了程序的安全性,但灵活性上不如函数宏。

    注意

    应根据不同的情况选择使用inline还是#define来定义小型函数。