<分区>
我的研究还没有得出这个问题的答案(在 SOF 中),但我相信之前一定有人问过这个问题,如果是的话,我们深表歉意。
我在 C++ 中创建了一个枚举类型,然后我从消息头中读取了一个值,并想将它存储到我的枚举类型的变量中,示例:
// My defined enum type
enum myNumType_t
{
MY_NUM_UNKNOWN = 0,
MY_NUM1 = 1,
MY_NUM2 = 2,
MY_NUM3 = 3,
MY_NUM4 = 4,
MY_NUM5 = 5,
};
// In the code
int main()
{
myNum_t myNum = MY_NUM_UNKNOWN;
myNum = getMessageNumType(); // returns an int
return 0;
}
因此,这段代码无法在 C++ 中编译,因为它无法将 int 转换为 myNum_t,这很公平。那么如果我将它转换为 myNum = (myNum_t) getMessageNumType();
现在当然可以编译了。但它做对了吗?如果返回值超出 myNum_t 的范围会怎样?这里有我缺少的“最佳实践”吗?