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

