gpt4 book ai didi

c++ - 将 int 分配给 short (gcc) 时没有警告

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:02:59 26 4
gpt4 key购买 nike

我经常将“较长”类型的变量赋值给“较短”的变量,例如 intshortuint32_tuint8_t。有一天,我决定使用 gcc 在我的代码中查找所有此类情况,但令我惊讶的是 gcc 没有输出任何警告!

int long_value;
short short_value;
std::cin >> long_value; // Example input: 32769
short_value = long_value; // MS Visual Studio complains here at warning level 4
std::cout << "Long: " << long_value << '\n'; // My example output: 32769
std::cout << "Short: " << short_value << '\n'; // My example output: -32767

使用 gcc -Wallgcc -Wconversion 没有帮助(gcc 没有输出任何警告)。实际上,它从不针对任何输入和输出类型(例如 longunsigned char)输出任何警告。

我从未在 gcc 中发现真正的错误,所以我几乎可以肯定这种行为是有原因的。

那么为什么没有警告呢?

更新:我使用 gcc 4.1.2。

最佳答案

此功能是在 gcc 4.3 版本中添加的。以前这是不可用的。

希望您使用的是 gcc 4.2 或以下版本。

http://gcc.gnu.org/wiki/NewWconversion证实了这一点。

这个错误:http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2707也谈到了它。

关于c++ - 将 int 分配给 short (gcc) 时没有警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4579924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com