对于我的应用程序,它需要具有包含实体详细信息的数据结构。需要存储的细节数量非常多:大约 100-200 个整数、100-200 个指针等。对于这种情况,理想的设计应该是什么?数据结构的大小是设计时要考虑的因素吗?
问问题
271 次
1 回答
3
首先。C 中的结构被分配为内存的固体片段。你需要记住这一点。
巨大的结构很难维护,但很容易被处理器计算,因为所有数据都在附近。如果您可以尝试将您的大实体拆分成一堆具有有意义名称的小结构。
第二。定义您将执行的操作。例如,如果您需要大量更改 50 个整数但其余数据不会受到影响,那么将这些整数放在单独的结构中并在主结构中只保留指针会更好。它将允许您在不同实例之间快速交换数据。另一方面,如果您仅将此对象用作 DTO 并且不对其进行大量更改,则可以将其保留为连续的内存片段,因为序列化会更快更容易。
但至少请记住,不仅您将处理此代码,因此请尝试使其可读。避免使用表格来存储 [X,Y,Z] 维度。更好地使用可以在需要时转换为数组的小型结构。
至少了解你的机器。如果它是一个小型工厂控制器或关键的飞机的一部分,那么最好的选择就是让它尽可能简单。阅读有关此设备中的内存管理的信息(了解 malloc 的工作原理非常有用(只有想法是不够的))
于 2013-10-15T11:15:43.227 回答