2

在过去的三个月里,我一直很高兴地用 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;
};

为什么会这样?

4

1 回答 1

1

将位宽设为 8。毕竟它是一个字节。

一旦我这样做了(并为结构添加了一个名称),

g++ -std=c++11 

没有给我任何警告或错误。

于 2013-10-15T06:58:46.440 回答