IMO都使该功能仅具有翻译单元的范围。“静态”和“静态内联”功能有什么区别?为什么要inline放在头文件中而不是.c文件中?
3 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
根据我在GCC中的经验,我知道这一点,static
并且static inline
在编译器发出有关未使用功能的警告的方式方面有所不同。更准确地说,当您声明static
函数且当前转换单元中未使用该函数时,编译器会生成有关未使用函数的警告,但可以通过将其更改为来禁止该警告static inline
。
因此,我倾向于认为static
应该在翻译单元中使用它,并受益于额外的检查编译器来查找未使用的函数。并且static inline
应在头文件中使用,以提供可以内联的功能(由于缺少外部链接)而不会发出警告。
不幸的是,我找不到这种逻辑的任何证据。即使从GCC文档中,我也无法得出结论,inline
可以禁止未使用的功能警告。如果有人会共享指向其描述的链接,我将不胜感激。
- 3 回答
- 0 关注
- 606 浏览
添加回答
举报
0/150
提交
取消