内联函数和宏之间的区别

电脑杂谈  发布时间:2020-07-14 15:06:12  来源:网络整理

内联函数 宏_您试图运行的函数包含宏_word您正试图运行的函数包含有宏

生成:

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

比较:

您试图运行的函数包含宏_word您正试图运行的函数包含有宏_内联函数 宏

(1)宏调用不执行类型检查,甚至不执行常规参数检查,但函数调用执行.

(2)C语言宏使用文本替换,这可能会导致不可预测的后果,因为需要重新计算参数和操作顺序.

(3)宏中的编译错误很难找到内联函数 宏,因为它们引用的是扩展代码,而不是程序员键入的内容.

内联函数 宏_word您正试图运行的函数包含有宏_您试图运行的函数包含宏

(4)使用宏或不同的语法很难理解许多结构. 内联函数使用与普通函数相同的语言,您可以内联而不是随意内联.

(5)内联代码的调试信息通常比扩展的宏代码有用.

内联函数的缺点:

内联函数 宏_您试图运行的函数包含宏_word您正试图运行的函数包含有宏

(1)通常,编译器比程序员更清楚特定功能是否适合内联扩展;在某些情况下,对于程序员指定的某些内联函数,编译器可能更倾向于不使用内联甚至根本无法完成内联.

(2)对于某些正在开发的功能内联函数 宏,它们可能会从最初不合适的内联扩展中变得合适,反之亦然. 尽管内联函数或非内联函数的转换很容易转换为宏,但是增加的维护成本使其优势不那么明显.

(3)对于基于C的编译系统,内联函数的使用可能会大大增加编译时间,因为调用函数的每个位置都需要替换为函数主体,并且增加了代码量. 代码还会带来潜在的编译时间增加.

word您正试图运行的函数包含有宏_内联函数 宏_您试图运行的函数包含宏

宏观劣势:

1. 因为是直接插入的,所以代码量会增加.

2. 太多的嵌套定义可能会影响程序的可读性,并且很容易出错.

3. 对于带有参数的宏,因为它是直接替换,所以将不检查参数,并且存在安全隐患.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-280130-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...