第2 章 结构、联合和枚举
问题列表
2.1 声明struct x1 { ... }; 和typedef struct { ... } x2; 有什么不同?
2.2 为什么struct x { ... }; x thestruct; 不对?
2.3 一个结构可以包含指向自己的指针吗?
2.4 在C 语言中实现抽象数据类型什么方法最好?
2.5 在C 中是否有模拟继承等面向对象程序设计特性的好方法?
2.6 我遇到这样声明结构的代码: struct name { int namelen; char namestr[1];}; 然后又使用一些内存分配技巧使namestr 数组用起来好像有多个元素。这样合法和可移植吗?
2.7 是否有自动比较结构的方法?
2.8 如何向接受结构参数的函数传入常数值?
2.9 怎样从/向数据文件读/写结构?
2.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域的对齐方式?
2.11 为什么sizeof 返回的值大于结构的期望值, 是不是尾部有填充?
2.12 如何确定域在结构中的字节偏移?
2.13 怎样在运行时用名字访问结构中的域?
2.14 程序运行正确, 但退出时却“core dump” 了,怎么回事?
2.15 可以初始化一个联合吗?
2.16 枚举和一组预处理的#define 有什么不同?
2.17 有什么容易的显示枚举值符号的方法?