我正在使用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
是什么给出的?同样,我有两个版本的这个确实的东西,它工作正常。
答案 0 :(得分:1)
您可以将变量声明为函数作用域之外的全局变量,但不能使用单独的代码行来设置其值。在单独的行上设置值是可执行代码而不是初始化,并且不允许在那里。
如果您想在声明点初始化它,请尝试:
myStruct myNewStructVar = {0};
这应该适用于现在的情况。