gpt4 book ai didi

c++ - "narrowing conversion"无后缀的十六进制文字警告?

转载 作者:行者123 更新时间:2023-11-30 04:52:31 25 4
gpt4 key购买 nike

static int var[2] __attribute__ ((aligned (8))) =
{
0x0255cfa8,
0xfdfcddfc
};

为什么我收到警告:narrowing conversion of '4261207548u' from 'unsigned int' to 'int' inside { } is ill-formed in C++11 [-Wnarrowing]?

即使数字没有 uU 后缀,它们似乎也被视为无符号?

最佳答案

如果 int 在您的平台上是 32 位,则 0xfdfcddfcunsigned。那是因为你使用了十六进制表示法。

有用的编译器警告您该数字对于 int 来说太大了。

请注意,如果您编写了 denary 等效项,那么它将是一个 signed 类型(longlong long)并且编译器会发出了一个略有不同的警告。

引用:https://en.cppreference.com/w/cpp/language/integer_literal#The_type_of_the_literal

关于c++ - "narrowing conversion"无后缀的十六进制文字警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54345892/

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