我想声明一个使用冒号指定大小的位域(我不记得语法叫什么了)。我想写这个:
void myFunction()
{
unsigned int thing : 12;
...
}
但是 GCC 说这是一个语法错误(它认为我正在尝试编写一个嵌套函数)。我这样做没有问题:
struct thingStruct
{
unsigned int thing : 4;
};
然后将一个这样的结构放入堆栈
void myFunction()
{
struct thingStruct thing;
...
}
这让我相信它被语法而不是语义问题所阻止。
那么为什么第一个示例不起作用呢?我错过了什么?