读者:程序运行正确, 但退出时却 “core dump”了,怎么回事?
问题程序: struct list { char *item; struct list next; }/ 这里是 main 程序 */阿一:main(argc, argv) { … } 缺少的一个分号使 main() 被定义为返回一个结构。由于中间的注释行, 这个 联系不容易看出来。因为一般上, 返回结构的函数在实现时, 会加入一个隐含的返 回指针, 这个产生的 main() 函数代码试图接受三个参数, 而实际上只有两个传入。读者:可以初始化一个联合吗?阿一:在原来的 ANSI C 中, 只有联合中的第一个命名成员可以被初始化。C99 引入 了 “指定初始值”, 可以用来初始化任意成员。读者:枚举和一组预处理的 #define 有什么不同?阿一:有很小的区别。C 标准中允许枚举和其它整形类别自由混用而不会出错。枚举的一些优点: 自动赋值; 调试器在检验枚举变量时, 可以显示符号值; 它们 服从数据块作用域规则。一个缺点是程序员不能控 制这些对非重要的警告; 有些程序员则反感于无法控制枚举变量的大小。
2020-05-13
最新推荐文章于 2020-05-31 01:00:27 发布