gpt4 book ai didi

c++ - 负常量的后缀(或后缀)U、UL、ULL

转载 作者:行者123 更新时间:2023-11-30 02:51:06 28 4
gpt4 key购买 nike

在 C++ 中对负常量使用无符号后缀是好习惯吗?

例如,使用安全吗,

foo(-1ull);

代替

foo(unsigned long long(-1));

最佳答案

它并没有真正用于“负常数”。 C++ 中的常量(文字)始终是非负数。因此,您在这里得到的是文字 1ull ,前面带有一元 - 运算符。这意味着您的第一个变体的确切语义可以直接表示为

-(unsigned long long) 1

但不像

(unsigned long long) -1

(虽然最后两者产生相同的结果)。

顺便说一句,你写的第二个变体在句法上是不正确的。 “Multiword”类型名称不能用于函数式转换。 usigned(-1) 是合法的,但 unsigned int(-1) 不是。 unsigned long long(-1) 也是非法的。

但让我们假设我理解您试图通过第二个变体表达的意思。在这种假设下,两种变体做同样的事情,因此您可以使用其中一种,具体取决于个人偏好或编码标准。第一个显然更短。

关于c++ - 负常量的后缀(或后缀)U、UL、ULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19943026/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com