首页 >后端开发 >C++ >什么是 C 单一定义规则以及它如何确保程序一致性?

什么是 C 单一定义规则以及它如何确保程序一致性?

Barbara Streisand
Barbara Streisand原创
2025-01-06 01:32:39933浏览

What is the C   One-Definition Rule and How Does it Ensure Program Consistency?

C 中单定义规则的本质

在 C 中,单定义规则通过限制多个程序来控制程序的行为。翻译单元内某些实体的定义。让我们深入研究一下这条规则的细节:

官方定义

超越The C 编程语言,第 3 版,P. 9.2.3 中的参考,规则的官方定义可以在C标准中找到3.2:

"No translation unit shall contain more than one definition of any variable, function, class type, enumeration type or template."

此外,该标准强调程序中使用的每个非内联函数或对象必须有一个确切的定义。如果使用内联函数,则必须在引用它的每个翻译单元中定义它。

含义

此规则确保:

  • 一致性:多个定义可能会导致程序的不一致 行为。单一定义规则可以防止此类冲突。
  • 唯一的实体标识:每个变量、函数、类类型和其他定义的实体都具有唯一的标识,确保整个程序的行为一致。
  • 链接器兼容性:如果存在多个定义,链接器无法正确解析引用。该规则允许顺利链接和编译。

例外

单一定义规则不适用于:

  • 内联函数,必须在使用它们的每个翻译单元中定义。
  • 隐式定义的函数(参见 C 标准第 12.1、12.4 和 12.8 节)。

以上是什么是 C 单一定义规则以及它如何确保程序一致性?的详细内容。更多信息请关注PHP中文网其他相关文章!

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