你是否必须将`u`后缀附加到无符号整数?

问题描述 投票:7回答:1

我知道u后缀意味着'unsigned'。但是在以下代码中是必要的吗?

uint32_t hash = 2166136261u;

这是一个问题还是惯例?或者在这种情况下它有任何技术意义吗?无论如何,该值应转换为无符号,因为uint32_t是无符号的。

我何时应该何时不使用u后缀作为无符号整数值?

c variables literals unsigned
1个回答
4
投票

不,没有必要。事情在2147483648变得有趣,你的数字大于此。

请注意,如果2166136261有32位或更少,正式longlong longint类型。但要么以明确的方式转换为uint32_t

最后一点:如果0x811C9DC5有32位或更多,则等效的十六进制unsignedint类型。哦,快乐!

参考:https://en.cppreference.com/w/c/language/integer_constant

© www.soinside.com 2019 - 2024. All rights reserved.