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

IMO都使该功能仅具有翻译单元的范围。


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


为什么要inline放在头文件中而不是.c文件中?


不负相思意
浏览 556回答 3
3回答

繁华开满天机

根据我在GCC中的经验,我知道这一点,static并且static inline在编译器发出有关未使用功能的警告的方式方面有所不同。更准确地说,当您声明static函数且当前转换单元中未使用该函数时,编译器会生成有关未使用函数的警告,但可以通过将其更改为来禁止该警告static inline。因此,我倾向于认为static应该在翻译单元中使用它,并受益于额外的检查编译器来查找未使用的函数。并且static inline应在头文件中使用,以提供可以内联的功能(由于缺少外部链接)而不会发出警告。不幸的是,我找不到这种逻辑的任何证据。即使从GCC文档中,我也无法得出结论,inline可以禁止未使用的功能警告。如果有人会共享指向其描述的链接,我将不胜感激。
打开App,查看更多内容
随时随地看视频慕课网APP