U后缀的含义

lov*_*ing 45 c c++

后缀(或后缀)U对以下值的含义是什么?

0U
100U
Run Code Online (Sandbox Code Playgroud)

rus*_*lik 57

它代表着unsigned.

声明常量时,您还可以指定其类型.另一个常见的例子是L,这代表long.(并且必须将它放两次以指定64位常量).

示例:1ULL.

它有助于避免显式转换.

  • 还有一些必要的情况.例如,编译器将积分常量解释为整数,因此像`0xffffffffffffffffff`这样的常量将丢失其高32位而没有`ll`后缀. (7认同)
  • @zneak 实际上,不会。整数文字具有可以保存值的类型(如果存在这样的类型)。请参阅[文字的类型](https://en.cppreference.com/w/cpp/language/integer_literal#The_type_of_the_literal)。因此,在 GCC 8.4.0 x86_64 上,示例文字的类型是“long unsigned int”。 (2认同)

wal*_*lyk 34

C和C++中的整数常量可以有多个后缀:

123u值123是无符号int
123l(小写L)123是有符号长
123L同上
123uL无符号长
123LL有符号长long,64位或128位值(取决于环境)
123uLL无符号长long

  • @Ela782:是的。我不确定我的头顶,但如果没有“u”,它很可能是一个带符号的 long long。(已检查)不,它溢出了 64 位有符号整数。需要`u`。如果它被编译的架构有 128 位 `int`s 可以选择有符号或无符号。 (2认同)