关于 IEC 60559 附录的说明

标签 c language-lawyer iso

C99/C11 多次提到 IEC 60559 的附录。乍一看,它似乎是 Annex F(IEC 60559 浮点运算),但看到这样的定义有点令人困惑:

F.10.8.1 The copysign functions

copysign is specified in the Appendix to IEC 60559.

首先,AnnexAppendix 之间存在差异,尽管它们大多是同义词。这相关吗?

其次,如果附件 F 这样的附录,为什么它以这种递归的方式引用自己,而不给出函数 copysign 的实际定义?它不应该说“copysign is specified in IEC 60559”吗?

最后,我考虑将 IEC 60559 的附录 解释为“标准 IEC 60559 的附件”,IEC 60559 本身将提供该附件(与附件 F 在C99/C11 标准),但我在标准中找不到它。 preview在 ISO 的网站上可用表示只有 2 个附件,附件 A - 引用书目,和附件 B - 程序调试支持,它们都与 C 标准中提到的定义无关。

最佳答案

C 标准有附录 F。IEC 60599 有附录。

copysign 在整个 C 标准中有好几处提到。 C 标准附件 F 讨论了整个 IEC 60559-1989(关于 C 中的用法),其中提到了 copysign

IEC 60559 文档的日期(即 1989 年)在这里很重要,因为文档的布局在 ISO 网站可能销售的当前版本中发生了重大变化! C99 和 C11 都引用了 1989 版本。

在C标准的附录F中特别提到了IEC 60559的copysign函数。在该文件(即 IEC 60559-1989)中,附录中有详细说明。

因此:

F.10.8.1 The copysign functions

copysign is specified in the Appendix to IEC 60559.

是 C 标准附件 F 的第 10 部分的一部分,告诉您 copysign 是在 IEC 60559 的附录中指定的。

在 IEC 60559 的 1989 版本中(实际上我正在查看 IEEE 754-1985,但布局应与 1989 IEC 文档匹配),copysign 在标题为“附录”的部分中提到. 在更新版本的 IEC 60559 中(我有 IEEE 754-2008,但布局应与 2011 IEC 文档匹配),copysign 在第 5.5.1、6.3 和 B.3 节中提到

关于关于 IEC 60559 附录的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43975692/

相关文章:

c++ - 使用引用的 constexpr 静态成员作为模板参数

java - 刻录到磁盘后无法加载字体

c++ - 这是 iostream.h 和 iostream 之间的区别吗

sql-server - 在 SQL 中导入或转换使用时区数据扩展的 ISO 8601 日期

c# - 使用 discutils 编辑 iso 文件

c - 目标计算机 arp 缓存在 linux 上的 c 中进行 arp 欺骗时不更新

c - mktime 返回不正确的值

将 char** 转换为 char* 或 char

c - sprintf 堆栈缓冲区溢出

c++ - 返回前向声明的枚举类是否有效? (Visual Studio 2015 链接器错误)