枚举中的掩码[C++]

The*_* do 1 c++ enums

我现在玩的是比特,正在查看io状态的微软代码并发现了这样的事情:

enum _Iostate
    {   // constants for stream states
    _Statmask = 0x17};//What is this mask for???

static const _Iostate goodbit = (_Iostate)0x0;
static const _Iostate eofbit = (_Iostate)0x1;
static const _Iostate failbit = (_Iostate)0x2;
static const _Iostate badbit = (_Iostate)0x4;
static const _Iostate _Hardfail = (_Iostate)0x10;
Run Code Online (Sandbox Code Playgroud)

我只是想知道为什么这个掩码因为代码在没有这个掩码的情况下工作,并且值与whitout这个掩码保持一致.谢谢.

sth*_*sth 7

它确保_Iostate枚举具有正确的大小,以容纳之后定义的所有位常量及其组合.