为了账号安全,请及时绑定邮箱和手机立即绑定

“静态”和“静态内联”功能有什么区别?

“静态”和“静态内联”功能有什么区别?

C
不负相思意 2019-10-15 14:55:00
IMO都使该功能仅具有翻译单元的范围。“静态”和“静态内联”功能有什么区别?为什么要inline放在头文件中而不是.c文件中?
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

根据我在GCC中的经验,我知道这一点,static并且static inline在编译器发出有关未使用功能的警告的方式方面有所不同。更准确地说,当您声明static函数且当前转换单元中未使用该函数时,编译器会生成有关未使用函数的警告,但可以通过将其更改为来禁止该警告static inline

因此,我倾向于认为static应该在翻译单元中使用它,并受益于额外的检查编译器来查找未使用的函数。并且static inline应在头文件中使用,以提供可以内联的功能(由于缺少外部链接)而不会发出警告。

不幸的是,我找不到这种逻辑的任何证据。即使从GCC文档中,我也无法得出结论,inline可以禁止未使用的功能警告。如果有人会共享指向其描述的链接,我将不胜感激。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 556 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信