
生成:
内联函数(有时称为函数或编译时扩展函数)是一种编程语言结构,用于建议编译器对某些特殊函数进行内联扩展;也就是说,编译器将指定函数主体Insert和replace在调用该函数的每个位置(上下文),从而节省了每次调用该函数的额外时间成本. 但是,在选择使用内联函数时,必须在程序占用的空间和程序执行效率之间进行权衡,因为太多复杂的函数内联扩展会带来很多存储资源开销.
比较:

(1)宏调用不执行类型检查,甚至不执行常规参数检查,但函数调用执行.
(2)C语言宏使用文本替换,这可能会导致不可预测的后果,因为需要重新计算参数和操作顺序.
(3)宏中的编译错误很难找到内联函数 宏,因为它们引用的是扩展代码,而不是程序员键入的内容.

(4)使用宏或不同的语法很难理解许多结构. 内联函数使用与普通函数相同的语言,您可以内联而不是随意内联.
(5)内联代码的调试信息通常比扩展的宏代码有用.
内联函数的缺点:

(1)通常,编译器比程序员更清楚特定功能是否适合内联扩展;在某些情况下,对于程序员指定的某些内联函数,编译器可能更倾向于不使用内联甚至根本无法完成内联.
(2)对于某些正在开发的功能内联函数 宏,它们可能会从最初不合适的内联扩展中变得合适,反之亦然. 尽管内联函数或非内联函数的转换很容易转换为宏,但是增加的维护成本使其优势不那么明显.
(3)对于基于C的编译系统,内联函数的使用可能会大大增加编译时间,因为调用函数的每个位置都需要替换为函数主体,并且增加了代码量. 代码还会带来潜在的编译时间增加.

宏观劣势:
1. 因为是直接插入的,所以代码量会增加.
2. 太多的嵌套定义可能会影响程序的可读性,并且很容易出错.
3. 对于带有参数的宏,因为它是直接替换,所以将不检查参数,并且存在安全隐患.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-280130-1.html
低智商