然后说一下这个,基础知识 | 每日一面(17)

读者:可以初始化一个联合吗?

小林:在原来的 ANSI C 中, 只有联合中的第一个命名成员可以被初始化。C99 引入了 “指定初始值”, 可以用来初始化任意成员。

读者:枚举和一组预处理的 #define 有什么不同?

小林:只有很小的区别。C 标准中允许枚举和其它整形类别自由混用而不会出错。枚举的一些优点: 自动赋值; 调试器在检验枚举变量时, 可以显示符号值; 它们服从数据块作用域规则。(编译器也可以对在枚举变量被任意地和其它类型混用时, 产生非重要的警告信息, 因为这被认为是坏风格。)一个缺点是程序员不能控制这些对非重要的警告; 有些程序员则反感于无法控制枚举变量的大小。

正文完