宏纯粹是字符的替换,没有类型检查,十分不安全。内联函数有类型检查,更加安全。宏无法调试,而内联函数可以调试。宏不方便阅读源码,内联函数和普通函数一样,可以阅读源码。用宏代替函数定义,还是有函数调用的开销。但是内联函数在函数调用点处展开,节省了函数调用的开销。