为什么C标准没有提到__STDC_IEC_559__?

为什么C标准没有提到__STDC_IEC_559__?,第1张

概述根据C11标准[c.math],< cmath>标题与标准C库标题< math.h&gt ;.相同. (当然,有几个区别,—命名空间,重载等—但这些可以忽略) 根据C99标准附件F,“定义__STDC_IEC_559__的实施应符合附件F中的规定. 防爆.如果两个参数都为零,则atan2可能会导致域错误,但是如果定义了__STDC_IEC_559__则不能使用. 在C99中,许多行为也取决于__S 根据C11标准[c.math],< cmath>标题与标准C库标题< math.h&gt ;.相同.
(当然,有几个区别,—命名空间,重载等—但这些可以忽略)
根据C99标准附件F,“定义__STDC_IEC_559__的实施应符合附件F中的规定.

防爆.如果两个参数都为零,则atan2可能会导致域错误,但是如果定义了__STDC_IEC_559__则不能使用.

在C99中,许多行为也取决于__STDC_IEC_559__是否被定义.

但是,似乎__STDC_IEC_559__在C11标准中没有提到.
如果是,C实施是否符合附件F中的规格?

我认为std :: numeric_limits< T> :: is_IEc559()是一个替代,但似乎只提到类型.

解决方法 C标准(n3797)包括C标准库,参见s1.2 / 2.

The library described in Clause 7 of ISO/IEC 9899:1999 and Clause 7 of ISO/IEC 9899:1999/Cor.1:2001
and Clause 7 of ISO/IEC 9899:1999/Cor.2:2003 is hereinafter called the C standard library.

With the qualifications noted in Clauses 18 through 30 and in C.4,the C standard library is a subset of the C++ standard
library.

该标准没有提及该符号,我不会指望它被定义,因为它似乎是标准C的特定.通过不定义该符号,C不受附件F的内容约束.

相反,C标准包含多个C-like形式的IEC 559的多个提及.例如,

Shall be true for all specializations in which is_IEc559 != false

18.3.2.4/56中有具体的提及.

static constexpr bool is_IEc559;

True if and only if the type adheres to IEC 559 standard.218

Meaningful for all floating point types.

我认为可以公平地说,C包括所有相同的功能(或缺乏它们),但适应于C世界.

总结

以上是内存溢出为你收集整理的为什么C标准没有提到__STDC_IEC_559__?全部内容,希望文章能够帮你解决为什么C标准没有提到__STDC_IEC_559__?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1233402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存