作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我今天看到这行代码,但不知道它做了什么。
typedef enum {
SomeOptionKeys = 1 << 0 // ?
} SomeOption;
一些用法或示例会有所帮助。谢谢!
最佳答案
看起来它定义了一个应该包含一组标志的枚举类型。您会期望看到更多的定义,如下所示:
typedef enum {
FirstOption = 1 << 0,
SecondOption = 1 << 1,
ThirdOption = 1 << 2
} SomeOption;
由于它们被定义为 2 的幂,因此每个值对应于整数变量中的一位。因此,您可以使用按位运算符来组合它们并测试它们是否已设置。这是 C 代码中的常见模式。
您可以编写这样的代码来组合它们:
SomeOption myOptions = FirstOption | ThirdOption;
你可以检查哪些选项是这样设置的:
if (myOptions & ThirdOption)
{
...
}
关于c - 这个枚举是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7209950/
我是一名优秀的程序员,十分优秀!