基于非IEEE 754的C编译器的FP:这样的C编译器是否符合C标准?
C compiler's FP based on non-IEEE 754: is such C compiler C standard compliant?
如果一个C编译器的FP是基于非IEEE 754的,那么这样的C编译器是否符合C标准?
就C standard而言,用于浮点数的表示是未指定。
第 6.2.6 节介绍了类型的表示。特别是,6.2.6.1p1 指出:
The representations of all types are unspecified except as stated in this subclause.
并且在第 6.2.6 节中没有任何地方提到浮点类型。因此,实现可以使用它选择的任何表示,并且不需要记录该决定。
如果实现表明它符合 IEEE 754/IEC 60559(__STDC_IEC_559__
已定义),则它必须这样做。
但 C 标准没有要求。 C11 footnote 356:
- Implementations that do not define
__STDC_IEC_559__
are not required to conform to these specifications.
C 不需要例如二进制浮点数 - 最低要求包括例如任何浮点类型的范围必须至少为 1e-37 到 1e37
如果一个C编译器的FP是基于非IEEE 754的,那么这样的C编译器是否符合C标准?
就C standard而言,用于浮点数的表示是未指定。
第 6.2.6 节介绍了类型的表示。特别是,6.2.6.1p1 指出:
The representations of all types are unspecified except as stated in this subclause.
并且在第 6.2.6 节中没有任何地方提到浮点类型。因此,实现可以使用它选择的任何表示,并且不需要记录该决定。
如果实现表明它符合 IEEE 754/IEC 60559(__STDC_IEC_559__
已定义),则它必须这样做。
但 C 标准没有要求。 C11 footnote 356:
- Implementations that do not define
__STDC_IEC_559__
are not required to conform to these specifications.
C 不需要例如二进制浮点数 - 最低要求包括例如任何浮点类型的范围必须至少为 1e-37 到 1e37