C++函数声明为static inline <函数>的好处

一、关键字static

回顾一下C++关键字——static:静态生存周期、静态数据成员、静态函数成员、单例模式
static

① 修饰普通变量 : 修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。
②修饰普通函数:
表明函数的作用范围,仅在定义该函数的文件内才能使用。在多人开发项目时,为了防止与他人命名空间里的函数重名,可以将函数定位为 static。
③修饰成员变量:
修饰成员变量使所有的对象只保存一个该变量,而且不需要生成对象就可以访问该成员。
③修饰成员函数:
修饰成员函数使得不需要生成对象就可以访问该函数,但是在 static 函数内不能访问非静态成员。

二、关键字inline

①相当于把内联函数里面的内容写在调用内联函数处;
②相当于不用执行进入函数的步骤,直接执行函数体;
③相当于宏,却比宏多了类型检查,真正具有函数特性;
④编译器一般不内联包含循环、递归、switch 等复杂操作的内联函数;
⑤在类声明中定义的函数,除了虚函数的其他函数都会自动隐式地当成内联函数。

三、组合static inline <函数>

将C++函数声明为static inline的好处包括:

  1. 编译时展开inline关键字会告诉编译器在调用函数时将其内容直接插入到调用处,而不是通过函数调用的方式执行。这样可以减少函数调用的开销,提高程序的执行效率。

  2. 避免重复定义:将函数声明为static inline可以避免在多个文件中包含同一函数定义而导致的重复定义错误。static关键字表示该函数只在当前文件中可见,避免了符号冲突。

  3. 减少代码大小:使用inline可以减少代码的大小,因为编译器会在每个调用点插入函数的代码,而不会生成单独的函数代码。

  4. 避免函数调用开销:由于函数被展开为代码,避免了函数调用的开销,特别是对于一些简单的、频繁调用的函数,可以提高程序的性能。

  5. 提高代码可读性:将函数声明为inline可以提高代码的可读性,因为函数的定义和调用点更加紧凑,更容易理解函数的作用。

需要注意的是,将函数声明为static inline并不是适用于所有情况的,特别是对于一些复杂的函数或者函数体较大的情况,可能不适合使用inline。此外,编译器并不一定会将所有声明为inline的函数都进行内联展开,具体展开与否取决于编译器的优化策略。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿天堂没有C++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值