簡體   English   中英

枚舉中的掩碼[C ++]

[英]mask in enum [C++]

我正在玩的時候,正在查看io狀態的Microsoft代碼,發現了類似這樣的內容:

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;

我只是想知道為什么使用此掩碼,因為代碼沒有該掩碼就可以工作,而值與使用此掩碼一樣保持不變。 謝謝。

它確保_Iostate枚舉具有正確的大小以容納以后定義的所有位常量及其組合。

這是所有可能標志的按位或。 您也許可以使用它從整數中的其他位中提取包含標志的部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM