3.7 是否有自动比较结构的方法?
没有。编译器没有简单的好办法实现结构比较 (即, 支持结构的 == 操作符), 这也符合 C 的低层特性。 简单的按字节比较会由于结构中没有用到的 ``空洞'' 中的随机数据 (参见问题 2.10) 而失败; 而按域比较在处理大结构时需要难以接受的大量重复代码。
如果你需要比较两个结构, 你必须自己写函数按域比较。
参考资料: [K&R2, Sec. 6.2 p. 129]; [Rationale, Sec. 3.3.9]; [H&S, Sec. 5.6.2 p. 133]。
没有。编译器没有简单的好办法实现结构比较 (即, 支持结构的 == 操作符), 这也符合 C 的低层特性。 简单的按字节比较会由于结构中没有用到的 ``空洞'' 中的随机数据 (参见问题 2.10) 而失败; 而按域比较在处理大结构时需要难以接受的大量重复代码。
如果你需要比较两个结构, 你必须自己写函数按域比较。
参考资料: [K&R2, Sec. 6.2 p. 129]; [Rationale, Sec. 3.3.9]; [H&S, Sec. 5.6.2 p. 133]。
授人以渔,不授人以鱼。