我们可以从五个方面来谈内联函数(inline函数)、静态函数和宏函数的区别和联系:
1、作用域
内联函数和宏函数的作用域为单文件,而静态函数的作用域为本文件。
2、可否调试
inline修饰的函数在Debug版本可以调试,Release版本不可以调试。
静态函数在Debug版本和Release版本里都可以调试。
宏函数不可以调试(宏函数在预处理期就已经完成字符替换)。
3、有无类型检查
inline函数和静态函数有类型检查,宏函数没有类型检查。
4、是否进行栈帧操作
inline函数在Debug版本中进行栈帧操作,在Release版本不进行。
静态函数在Debug版本和Release版本都进行栈帧操作。
宏函数不会进行栈帧操作,在预编译期时直接在调用点展开。
5、效率
inline函数的效率更高,宏函数的效率也高但是不安全,静态函数的效率比其它两个低。