【发布时间】:2017-05-02 14:48:15
【问题描述】:
从我记事起,我就一直这样做:
for (unsigned int i = 0U; i < 10U; ++i)
{
// ...
}
换句话说,我在无符号整数上使用U 说明符。现在已经看了太久了,我想知道我为什么要这样做。除了表示意图之外,我想不出它在这样的琐碎代码中有用的原因吗?
我应该继续使用这个约定是否有正当的编程原因,或者它是多余的?
【问题讨论】:
-
Meaning of U suffix的可能重复
-
稍微改变了问题
-
10是一个有符号整数。10U是一个无符号整数。所以也许你这样做是为了避免隐式类型转换。但是,在大多数情况下(当然在您发布的示例中),隐式类型转换无论如何都会完美地工作。但是,如果有办法避免它们,那么这样做有什么害处呢?我只是猜测。 -
从链接的答案看来,只有当我认为溢出可能是一个问题时,保留它似乎才有用?但是话又说回来,我不是首先通过指定
unsigned来缓解这种情况,而没有U吗? -
不客气。还有另一个例子,在使用 C++11 关键字
auto的变量定义中使用它们。见this answer。 (我比上一个更不喜欢它也无关紧要,但不知何故,我觉得有必要提一下。)
标签: c unsigned convention