gpt4 book ai didi

c - 为什么我不能将位域声明为自动变量?

转载 作者:行者123 更新时间:2023-12-04 09:42:58 24 4
gpt4 key购买 nike

我想声明一个使用冒号指定大小的位域(我不记得语法叫什么)。我想写这个:

void myFunction() 
{
unsigned int thing : 12;
...
}

但是 GCC 说这是一个语法错误(它认为我正在尝试编写一个嵌套函数)。我这样做没有问题:
struct thingStruct
{
unsigned int thing : 4;
};

然后将一个这样的结构放在堆栈上
void myFunction() 
{
struct thingStruct thing;
...
}

这让我相信它是被语法阻止的,而不是语义问题。

那么为什么第一个例子不起作用呢?我错过了什么?

最佳答案

第一个示例不起作用,因为您只能在结构中声明位域。正如您所说,这是语法,而不是语义,但确实如此。如果需要位域,请使用结构。

关于c - 为什么我不能将位域声明为自动变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com