sohappyoh 发表于 2014-2-14 16:25:23

C语言结构体不能在定义时初始化,为什么AVR官方的例子里

在AVR官方C实例中发现如下定义的结构体:struct {    uint8_t criticalConditionDetected: 1 ;    uint8_t cellTemperatureTooLow : 1;    uint8_t cellTemperatureTooHigh : 1;    uint8_t voltageTooHigh : 1;    uint8_t voltageTooLow : 1;    uint8_treoccuringChargeProtection : 1;    uint8_t checksumFailure : 1;    }errorFlags = {0,0,0,0,0,0,0};

why1220 发表于 2014-2-14 16:56:34

C语言有几个不同的标准的,如:C89、C99等,每家编译工具厂家还有自己的标准呢!

binaimei2007 发表于 2014-2-14 17:07:29

结构体内的:1是C语言的位域
外面的errorFlags 是一个结构体实体,不是结构体名
这样的结构体定义省略了结构体名

sohappyoh 发表于 2014-2-14 17:37:49

binaimei2007 发表于 2014-2-14 17:07
结构体内的:1是C语言的位域
外面的errorFlags 是一个结构体实体,不是结构体名
这样的结构体定义省略了结 ...

非常感谢啊,还是第一次见这种
页: [1]
查看完整版本: C语言结构体不能在定义时初始化,为什么AVR官方的例子里