如何在 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 并为此使用数组索引。
如标题所示,我试图在 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 并为此使用数组索引。