我把struct
与unsigned 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
给什么?再说一次,我有两个版本的这个确切的东西,它工作得很好。
最佳答案
可以将变量声明为函数范围外的全局变量,但不能有单独的代码行来设置其值。在单独的行上设置该值是可执行代码,而不是初始化,因此不允许在该行中设置该值。
如果要在声明时初始化它,请尝试:
myStruct myNewStructVar = {0};
这应该在现在的地方起作用。