C语言入门中,内联函数应该如何改写为长尾?
- 内容介绍
- 相关推荐
本文共计621个文字,预计阅读时间需要3分钟。
1. 概念:以inline修饰的函数称为内联函数,编译时C++编译器会在调用内联函数的地方展开该函数,避免函数调用的开销,从而提高程序运行效率。没有函数调用的栈帧建立,内联函数可提升程序运行效率。如果函数前添加inline关键字,则称为内联函数。
1.概念
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。
如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用。
查看方式:
1.在release模式下,查看编译器生成的汇编代码中是否存在call Add:
2.在debug模式下,需要对编译器进行设置,否则不会展开(因为debug模式下,编译器默认不会对代码进行优化,一下给出VS2022的设置方式):
2.特性
- inline是一种以空间换时间的做法,如果编译器将函数当作内联函数处理,在编译阶段,会用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运行效率。
本文共计621个文字,预计阅读时间需要3分钟。
1. 概念:以inline修饰的函数称为内联函数,编译时C++编译器会在调用内联函数的地方展开该函数,避免函数调用的开销,从而提高程序运行效率。没有函数调用的栈帧建立,内联函数可提升程序运行效率。如果函数前添加inline关键字,则称为内联函数。
1.概念
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。
如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用。
查看方式:
1.在release模式下,查看编译器生成的汇编代码中是否存在call Add:
2.在debug模式下,需要对编译器进行设置,否则不会展开(因为debug模式下,编译器默认不会对代码进行优化,一下给出VS2022的设置方式):
2.特性
- inline是一种以空间换时间的做法,如果编译器将函数当作内联函数处理,在编译阶段,会用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运行效率。

