c++ - 返回一个枚举,看不懂这行代码

标签 c++ enums

我正在研究现有项目的代码,我阅读了这段代码:

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;

假设mgeg各占16位,将中局和终局得分打包成枚举类型的单个值。

关于c++ - 返回一个枚举,看不懂这行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35113096/

相关文章:

c++ - 游戏中的射击按钮在按下空格键时触发多次而不是一次

c++ - 仅将基础部分从一个对象分配给另一个对象

c++ - 初始化类的静态非常量数据成员

java - 计算属性 wrt JPA。这对我有用吗?

c++ - 如何在不必绑定(bind)到特定类的情况下实现观察者模式?

c++ - 错误: cast from ‘void*’ to ‘int’ loses precision [-fpermissive] in makefile

sql - Postgres 中的代数数据类型

c# - 如何在 NET 3.5 中尝试解析枚举值?

swift - 二元运算符 '==' 不能应用于两个操作数

c++ - 枚举类范围解析运算符