gpt4 book ai didi

c++ - 在#define 中使用移位运算符的优点

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:22:33 25 4
gpt4 key购买 nike

在现有代码中,对于某个失败案例,有几个“原因”。这些“原因”#defined 如下:

#define STRING_NOT_FOUND   (1 << 0)
#define STRING_INVALID (1 << 1)
#define STRING_TOO_LARGE (1 << 2)
...etc

这些是使用函数 setFailureReason(int reason);

设置的

与使用数字相比,在定义这些常量时使用移位运算符有什么优势,如下所示:

#define STRING_NOT_FOUND   1
#define STRING_INVALID 2
#define STRING_TOO_LARGE 4

最佳答案

当您到达 1 << 24 时它会变得更有用或类似的东西,大多数人不知道是 16777216。

在这种特殊情况下,我完全不确定为什么它是一个“位域” - 它可以是 STING_NOT_FOUND 吗?同时STRING_INVALID和/或 STRING_TOO_LARGE .

正确的 C++ 应该使用 enum (即使在 C 中,这也是首选)。

关于c++ - 在#define 中使用移位运算符的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16603176/

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