c++ - g++ -Wall 没有关于 double-> int cast 的警告

标签 c++ g++

在以下代码段中,不会产生任何警告。 g++4.4.3 -Wall -pedantic

//f is
void f(int );

f(3.14);
double d = 3.14;
int i = d+2;

我强烈记得这是一个警告,类似于“可能丢失精度”。是被删除了还是我的内存在欺骗我?

如何在 g++ 中将其变成警告?我觉得这是一个有用的警告,还是一个坏主意?

我什至在 http://gcc.gnu.org/onlinedocs/gcc-4.4.5/gcc/Warning-Options.html 上都找不到合适的东西

最佳答案

$ gcc -Wconversion test.c

test.c: In function ‘main’:
test.c:3: warning: conversion to ‘int’ from ‘double’ may alter its value

关于c++ - g++ -Wall 没有关于 double-> int cast 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553103/

相关文章:

c++ - 通过命令行编译.cpp程序时出错

c++ - 由于变体成员,N3690/N4140 与 N4659/N4727,隐式定义的构造函数被删除

c++ - Mac OSX 上的 Clang 链接错误

c++ - &array[size] 完全安全吗?

c++ - 通过位操作获取函数中的值

c++ - 节点优先级队列

c++ - 继承默认构造函数在 gcc 中失败,但在 clang 中有效,哪个有 bug?

ubuntu - 如何在 ubuntu 17.04 中将我的 gcc 6.3.0 更新为 gcc 7.1.0

c++ - 我可以在 C++ 中对 int 值使用 not 运算符吗?

c++ - Scala 和 C++ traits 之间的关系是什么