我正在研究现有项目中的代码,并且阅读了以下代码:
enum Score {
SCORE_ZERO,
SCORE_ENSURE_INTEGER_SIZE_P = INT_MAX,
SCORE_ENSURE_INTEGER_SIZE_N = INT_MIN
};
inline Score make_score(int mg, int eg) {
return Score((mg << 16) + eg);
}
我有一个称为的枚举Score
和一个返回的函数Score
。我不明白最后一行的含义。它会“创建”然后返回一个Score
枚举,并将其传递一个整数吗?整数在哪里?如何保存?
Score
是C样式的枚举类型。SCORE_ZERO
等等是特定值的名称,但是枚举类型的对象可以容纳适合该类型的任何值。在这种情况下,它可以保留任何int
值。举例来说,
Score temp = 13;
最后一行是创建带有int
值的临时文件并返回该临时文件。详细版本如下所示:
Score temp = (mg << 16) + eg;
return temp;
假设每个mg
和都eg
适合16位,并且将中间游戏和结束游戏得分打包为枚举类型的单个值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句