打印
[复制链接]
378|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LOVEEVER|  楼主 | 2024-3-6 08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

内联函数禁用所有的编译选项。使用__inline修饰函数导致函数在调用处直接替换为函数体。这样代码调用函数更快,但增加代码的大小,特别在函数本身比较大而且经常调用的情况下。

__inline int square(int x) {
   return x * x;
}

#include <MATH.H>

double length(int x, int y){
    return sqrt(square(x) + square(y));
}

使用内联函数的好处如下:

没有函数调用负担。函数调用处直接替换为函数体,因此没有诸如读取寄存器变量等性能消耗。
更小的参数传递消耗。由于不需要拷贝变量,传递参数的消耗更小。如果参数是常量,编译器可以提供更好的优化。
内联函数的缺陷是如果调用的地方很多,代码的体积会变得很大。这主要取决于函数本身的大小和调用的次数。

仅对重要的函数使用inline是明智的。如果使用得当,内联函数甚至可以减少代码的体积:函数调用会产生一些计算机指令,但是使用内联的优化版本可能产生更少的计算机指令。

使用特权

评论回复
沙发
星辰大海不退缩| | 2024-3-11 09:33 | 只看该作者
没有函数调用负担。函数调用处直接替换为函数体,因此没有诸如读取寄存器变量等性能消耗。

使用特权

评论回复
板凳
OKAKAKO| | 2024-3-11 15:21 | 只看该作者
函数调用处直接替换为函数体,没有读取寄存器变量等性能消耗。大大提升速率

使用特权

评论回复
地板
小夏天的大西瓜| | 2024-3-18 15:59 | 只看该作者
使用内联函数没有函数调用负担

使用特权

评论回复
5
小小蚂蚁举千斤| | 2024-3-19 17:35 | 只看该作者
使用__inline修饰函数导致函数在调用处直接替换为函数体。这样代码调用函数更快,但增加代码的大小,特别在函数本身比较大而且经常调用的情况下。

使用特权

评论回复
6
中国龙芯CDX| | 2024-3-21 15:26 | 只看该作者
使用__inline修饰函数导致函数在调用处直接替换为函数体。

使用特权

评论回复
7
jf101| | 2024-3-22 11:17 | 只看该作者
函数体的调用更优?

使用特权

评论回复
8
szt1993| | 2024-3-25 15:39 | 只看该作者
使用内联函数没有函数调用负担

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

288

主题

1897

帖子

4

粉丝