Joe*_*Joe 2 c syntax stack bit-fields
我想声明一个使用冒号指定大小的位域(我不记得调用语法).我想写这个:
void myFunction()
{
unsigned int thing : 12;
...
}
Run Code Online (Sandbox Code Playgroud)
但是GCC说这是一个语法错误(它认为我正在尝试编写一个嵌套函数).我这样做没有问题:
struct thingStruct
{
unsigned int thing : 4;
};
Run Code Online (Sandbox Code Playgroud)
然后将一个这样的结构放在堆栈上
void myFunction()
{
struct thingStruct thing;
...
}
Run Code Online (Sandbox Code Playgroud)
这让我相信它被语法阻止,而不是语义问题.
那么为什么第一个例子不起作用呢?我错过了什么?