Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何禁用gcc警告“;浮动常数超出范围“;及;浮动常数截断为零;?_C_Gcc_Floating Point_Warnings - Fatal编程技术网

如何禁用gcc警告“;浮动常数超出范围“;及;浮动常数截断为零;?

如何禁用gcc警告“;浮动常数超出范围“;及;浮动常数截断为零;?,c,gcc,floating-point,warnings,C,Gcc,Floating Point,Warnings,在当前的gcc中,这些讨厌的警告默认是打开的,我找不到需要哪个选项来禁用它们。他们正在生成警告垃圾邮件,并防止在gcc警告的行为是故意的代码中使用-Werror编译(并且来自无法轻松避免生成此类常量的通用宏)。在挖掘gcc源代码之后,我发现您描述的警告是-Woverflow选项的一部分。所以把那个警告关掉 顺便说一下,此注释位于警告代码中: < C和C++都需要对浮动常数进行诊断 超出其类型的可表示值范围。。。 如果该值下溢,我们也会发出警告 在GCC 4.8中,每个警告都有一个明确的指示器,指

在当前的gcc中,这些讨厌的警告默认是打开的,我找不到需要哪个选项来禁用它们。他们正在生成警告垃圾邮件,并防止在gcc警告的行为是故意的代码中使用
-Werror
编译(并且来自无法轻松避免生成此类常量的通用宏)。

在挖掘gcc源代码之后,我发现您描述的警告是
-Woverflow
选项的一部分。所以把那个警告关掉

顺便说一下,此注释位于警告代码中:

< C和C++都需要对浮动常数进行诊断 超出其类型的可表示值范围。。。 如果该值下溢,我们也会发出警告


在GCC 4.8中,每个警告都有一个明确的指示器,指示哪个标志启用了该警告:

floating constant exceeds range of 'double' [-Woverflow]

干得好,GCC开发人员。

当然
-w
会禁用它,但是没有办法重新打开sane警告…接受!我不知道我怎么会错过这个-我想我是在寻找一些特定于浮点的东西,因为在早期的gcc版本中,
-Woverflow
只处理整数溢出(这是UB,因此是一个编程错误),我想这次我可以把麻烦归于标准机构而不是GCC…@R你知道是什么常数发出了这个警告吗?我很想看看人类是如何溢出实数的。有几个例子,但其中一个是在解析浮点数的单元测试中。测试的一部分是该函数正确解析了溢出到
INF
的数字。当然,测试框架使用一个宏,该宏将其参数字符串化以传递给解析函数,并将结果与参数值进行比较。一个特定值是
1.234e56789
:-)我之前对标准的评论是错误的。假设IEEE754/附录F,包括端点在内的
double
范围为[-INF,INF],并且没有“超过
double
范围”的值。GCC发出的警告是错误的。