内联函数和宏定义的区别

       两者区别如下:

  • 内联函数在编译器时展开,宏在预编译时展开。
  • 在编译的时候内联函数可以直接被嵌入到目标代码中,而宏只是一个简单的文本替换。
  • 内联函数可以完成诸如类型检查、语句是否正确等编译功能,宏就不具有这样的功能。
  • 宏不是函数,inline函数是函数。
  • 宏在定义时要小心宏参数(一般情况是把参数用括号括起来),否则容易出现二义性。而内联函数定义时不会出现二义性。

原文地址:https://www.cnblogs.com/wangfengju/p/6172429.html