是否需要使整数文字无符号?

时间:2018-12-12 15:06:44

标签: c++

我看到很多代码在做类似的事情,

<thead>

我了解到<td>static constexpr std::size_t value = 1024u; 指定为无符号整数,但是为什么还要麻烦地将其标记为u

1 个答案:

答案 0 :(得分:5)

在您的情况下,编写u毫无意义,因为编译器将进行概念上的转换。陷入低俗习惯可能会带来可移植性问题,这是一个坏习惯。

尽管有时是必要的:std::accumulate是一个重要的例子-初始值的类型是结果的类型。

如果您使用auto,那么您会发现规则变得非常复杂。例如,如果您使用十六进制文字,那么unsigned类型将成为候选。

参考:https://en.cppreference.com/w/cpp/language/integer_literal