1.内联函数调用时,会进行类型检查,要求实参和形参的类型一致,另外内联函数会先对实参表达式进行求值,然后传递给形参;
而宏调用时只用实参简单地替换形参。
2.内联函数实在编译的时候,在调用的地方将代码展开,而宏则是在预处理时进行替换的。
3.C++中建议采用inline函数来替换带参数的宏。
对内联成员函数的补充:
即便是可以把实现在类定义体外部的成员函数定义为内联函数,那该成员函数的实现也必须写在声明类定义体的哪个头文件(.h)中,不能违反规则;
即:内联函数的定义和实现都必须在同一个头(.h)文件中;