在过去的三个月里,我一直很高兴地用 GCC 编译我的代码,直到我重建了我的交叉编译器,那时我发现自己收到了消息“错误:位域'...'非整数类型”。
下面是一个有问题的枚举示例:
typedef unsigned char byte;
enum class opStatus : byte
{
/* Process has yet to begin execution */
Ready,
/* Process can resume execution */
Started,
/* Process has completed */
Finished,
/* Process is handling shutdown */
Finishing,
};
struct // Example usage
{
opStatus Status : 2;
};
为什么会这样?