【发布时间】:2014-01-03 14:07:54
【问题描述】:
我认为下面是在 C 中实现枚举的一种巧妙方法。
struct states
{
enum
{
waitPackage,
waitReference,
waitData
};
}state;
这增加了一些类型安全性,我还可以通过 state.XXX 访问每个成员,我认为这比添加枚举项的所有名称要简洁得多,并以 state_XXX 之类的方式访问成员。或者你怎么看,我错过了什么?
但是,我不能在 switch-case 语句中使用上面的枚举,因为编译器说状态不是常量。 有没有办法告诉编译器我不打算更改枚举的成员,它可以在 switch-case 中使用?或者另一种方式来完成我想要的?
在 C++ 中,我通过将枚举放在命名空间中来解决它,但这不是一个选项。
【问题讨论】:
-
arduino 是 C++,所以你可以使用命名空间和类