如何在c ++中进行常量整数赋值

时间:2017-12-07 10:40:29

标签: c++ integer const numeric

可以解释下面的代码

const uInt32 eVal = 8ul;
const uInt32 fVal = 5ul;
const uInt32 zVal = 0ul;

ul和数字8,5,0代表什么

2 个答案:

答案 0 :(得分:4)

这是程序员不必要的冗长。 ulunsigned long字面值的前缀,因此8ul具有unsigned long字样。

最有可能的是,这与uInt32的类型不同,所以您提供的代码实际上是混淆练习。实际上,他们应该依赖自动隐式转换规则并编写

const uInt32 eVal = 8;
const uInt32 fVal = 5;
const uInt32 zVal = 0;

或许甚至更喜欢用constexpr代替const

参考:http://en.cppreference.com/w/cpp/language/implicit_conversion

答案 1 :(得分:2)

ul代表数字的无符号长表示。这里,无符号long类型的数字8或5或0被分配给常量uInt32类型变量。

'ul'用于表示。它也不需要使用。