首页 >后端开发 >C++ >使用 #define 标准重新定义 C 关键字是否符合标准?

使用 #define 标准重新定义 C 关键字是否符合标准?

Patricia Arquette
Patricia Arquette原创
2024-11-21 04:03:17834浏览

Is Redefining C   Keywords with #define Standards Compliant?

C 中的预处理器定义和关键字重定义

在 C 预处理器指令领域,关于重定义的标准合规性引发了激烈的争论使用#define 的关键字。合规的预处理器可以允许这种做法吗?

预处理器和关键字

根据 C 标准,§17.4.3.1.1/2 明确禁止在其中重新定义关键字包含标准库头的翻译单元。此限制确保了标准库组件的完整性。

C 0x 和关键字重新定义

最初,人们认为 C 0x(现已过时的 C 11 中间体) )将加强这一禁令,彻底禁止关键字重新定义(§17.6.3.3.1)。然而,后来澄清,C 0x 中的规则保持不变。感知到的修订源于无意中误导了一些人的文本重新排列。

标准合规性和关键字重新定义

鉴于当前标准,重新定义关键字的 C 程序不能认为符合标准。通过违反关键字重新定义的限制,此类程序破坏了语言及其内置语义的完整性。

以上是使用 #define 标准重新定义 C 关键字是否符合标准?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn