我想对浮点表示进行假设,并且我想在编译时使用static_assert
验证浮点表示是否为IEEE-754,因为我是通过网络传输它们的。< / p>
如何使用static_assert
确保float
和double
类型具有IEEE-754中指定的格式?
答案 0 :(得分:1)
C99具有宏__STD_IEC_559__
,以检查浮点表示是否符合IEEE 754。
问题在于某些编译器未定义此宏。
根据此wikipedia article,您可以进行如下检查:
#ifndef __STDC_IEC_559__
puts("Warning: __STDC_IEC_559__ not defined. IEEE 754 floating point not fully supported.");
// #endif