内联函数在编译时展开,宏在预编译时展开。在编译的时候,内联函数可以直接被镶嵌到目标代码中,而宏只是一个简单的文本替换。内联函数可以完成诸如类型检查,语句是否正确等编译功能,宏就不具备这样的功能。宏不是函数,inline函数时函数。宏在定义时要小心处理宏参数,否则容易出现二义性。而内联函数定义时不会出现二义性。