我知道u
后缀意味着'unsigned'。但是在以下代码中是必要的吗?
uint32_t hash = 2166136261u;
这是一个问题还是惯例?或者在这种情况下它有任何技术意义吗?无论如何,该值应转换为无符号,因为uint32_t
是无符号的。
我何时应该何时不使用u
后缀作为无符号整数值?
不,没有必要。事情在2147483648
变得有趣,你的数字大于此。
请注意,如果2166136261
有32位或更少,正式long
是long long
或int
类型。但要么以明确的方式转换为uint32_t
。
最后一点:如果0x811C9DC5
有32位或更多,则等效的十六进制unsigned
是int
类型。哦,快乐!
参考:https://en.cppreference.com/w/c/language/integer_constant