如何在 C 中正确存储结构

How do you properly store structures in C

如标题所示,我试图在 C 中存储一个结构,但想找到最有效的方法。答案当然取决于存储的数据对吗?

我知道链表和双向链表,但我正在使用 Periodic Table,它有 118 个元素,每个元素有 29 个唯一字段,我不知道链表是​​否甚至是必要的。目前,我已经测试了将一些元素和 4 个特征存储到结构数组中。有整数、浮点数和字符串。

element[0] - atomicNumber: 1    element: Hydrogen       symbol: H       atomicMass: 1.0070
element[1] - atomicNumber: 2    element: Helium         symbol: He      atomicMass: 4.0020
element[2] - atomicNumber: 3    element: Lithium        symbol: Li      atomicMass: 6.9410
element[3] - atomicNumber: 4    element: Beryllium      symbol: Be      atomicMass: 9.0120

那么,有没有人有任何见解可以帮助指导我?

这既取决于存储的数据,也取决于您希望使用它的方式。 通用指针:如果您确切知道将有多少个元素,固定大小的数组通常是个好主意。

struct Element {
    int atomicNr;
    char symbol;
    // etc
};

Element elements[] = {
    {
       .atomicNr = 1,
       .symbol = 'H', 
    }, 
    // etc
};

您甚至可以摆脱 atomicNr 并为此使用数组索引。