可以解释下面的代码
const uInt32 eVal = 8ul;
const uInt32 fVal = 5ul;
const uInt32 zVal = 0ul;
ul和数字8,5,0代表什么
答案 0 :(得分:4)
这是程序员不必要的冗长。 ul
是unsigned 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'用于表示。它也不需要使用。