gpt4 book ai didi

c - 结构体还是指针?

转载 作者:行者123 更新时间:2023-11-30 16:56:44 25 4
gpt4 key购买 nike

最好/最快的方法是什么?

结构体:

struct Sheet{
u8 status; // to check if empty ?
u8 reserve0;
u8 reserve1;
u8 reserve2;
struct words words[1024];
};

struct Book {
int id;
struct Sheet sheet[64];
};

在这种情况下,如何检查sheet表是否为空?我需要为每张工作表添加状态

结构体指针表

struct Sheet{
u8 reserve0;
u8 reserve1;
u8 reserve2;
struct words words[1024];
};

struct Book {
int id;
struct Sheet* sheet[64];
};

我不需要使用malloc,因为它们是固定表。

struct of struct中,我可以通过设置status来初始化,但是对于指向struct的指针,我可以使用bookinstance进行初始化.sheet[] = NULL 或类似的东西。

我对指针structmalloc感到非常困惑。我来自Ruby...

需要明确的是:

我希望我的 book 实例中的 sheet 不超过 64 个。也许只会使用 3 个或 64 个...但我希望能够添加它们并使用 0 到 63 之间的数字检查它们。

最佳答案

在某种程度上,这取决于你所说的“更快”是什么意思。您的代码与这些元素交互的方式将改变这一点。一般来说;但是,您很少会看到 CPU 时间的显着影响。

请注意,在选项 2 中,Book 仅分配一个指针数组,因此您必须添加代码(和开销)来为要指向的指针分配 Sheets。

只要您不打算在书籍之间共享某些表格,第一个选项看起来会更干净。

此外,如果您要复制书籍,选项 2 会更快,因为您只复制指针而不是整个 Sheet 结构。

关于c - 结构体还是指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39824541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com