首页 > 后端开发 > C++ > 正文

C 中的'static”关键字真的被弃用了吗?

DDD
发布: 2024-11-13 07:23:02
原创
836 人浏览过

Is the 'static' keyword in C   truly deprecated?

C 中的内部链接和已弃用的“static”关键字

C 开发人员长期以来一直在翻译单元中使用“static”关键字来控制符号可见性。然而,这种做法在 n3092 中被弃用,随后在 n3225 中被删除。

弃用的理由

弃用“static”旨在阻止其在命名空间范围内声明对象,因为未命名的命名空间提供了更好的替代方案。然而,跟踪 C 缺陷的问题揭示了这一变化的微妙原因。

弃用的撤销

在 C 标准核心语言缺陷报告的修订版 94 中,问题 (1012. Undeprecating static )解释说:

虽然 7.3.1.1 [namespace.unnamed] 声明不推荐使用 static 关键字在命名空间范围内声明变量,因为未命名命名空间提供了更好的替代方案,但该功能不太可能将在可预见的将来的任何时候被删除。

“静态”的持久性

此更新有效地逆转了弃用。 “静态”仍然是声明具有内部链接的函数和对象的有效关键字。与使用未命名命名空间相比,它的主要优点在于简洁且无需额外的样板代码。

对 C 和 C 兼容性的影响

最初的弃用旨在增强 C 对 C 标准的遵守,因为 C 无法识别未命名的命名空间。然而,撤销弃用的决定承认将 C 程序编译为 C 的现实世界的复杂性。

结论

弃用“static”可能是善意的,但将其删除反映了这样的认识:未命名的命名空间并不能完全取代“静态”用于声明具有内部链接的对象的实用性。因此,开发人员可以继续放心地使用“静态”,因为它在 C 标准中的存在不太可能很快消失。

以上是C 中的'static”关键字真的被弃用了吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板