当用相同值的常量替换变量时,为什么gcc会给出溢出警告?

时间:2020-04-29 03:07:06

标签: c gcc compiler-warnings integer-overflow gcc-warning

编译器:x86_64-gcc-9.3
标志:-O3-墙壁-Wextra

在:

int main()
{
    int x= 4, y = 7;
    x = y*(4LU - 5);
    return x;
}

我没有收到警告。

但是,如果我将y替换为7,则会收到以下警告:

警告:从“ long unsigned int”到“ int”的转换溢出将值从“ 18446744073709551609”更改为“ -7” [-Woverflow]

即使值相同我为什么也得到它?

0 个答案:

没有答案