gpt4 book ai didi

c - 在 C 中使用 unsigned int 位域结构时出错

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:40 25 4
gpt4 key购买 nike

我将 structunsigned int 位域完美地结合使用,但突然间,在复制其中一个位域后,编译器失去了理智(看起来)。这是我的代码:

typedef struct myStruct {
unsigned int myVar:1;
} myStruct; // my compiler requires TWO declarations of the name for typedef

myStruct myNewStructVar;

myNewStructVar.myVar = 0; // throws error that "myNewStructVar" is unknown to the compiler

什么给了?同样,我有这个 EXACT 东西的两个版本,而且效果很好。

最佳答案

您可以在函数作用域之外将变量声明为全局变量,但不能使用单独的代码行来设置它的值。在单独的行上设置值是可执行代码而不是初始化,并且在那里是不允许的。

如果你想在声明的时候初始化它,试试:

myStruct myNewStructVar = {0};

这应该可以在现在的位置工作。

关于c - 在 C 中使用 unsigned int 位域结构时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20256387/

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