结构或指针的结构?

时间:2016-10-03 04:14:18

标签: c pointers struct

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

结构的结构:

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表是否为空?我需要为每张纸添加status吗?

结构的指针表

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

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

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

在struct 的结构中,我可以通过设置status来初始化,但是对于指向struct 的指针,我可以使用bookinstance.sheet[] = NULL或其他东西进行初始化像这样。

我很遗失pointersstructmalloc。我来自Ruby ...

要明确:

我希望sheet个实例中的book不超过64 import {Component} from '@angular/core' @Component({ selector: 'stock', //<<<===stock selector is used in AppComponent template: '<h1>Stocks</h1>' }) export class StocksComponent{} 。也许只会使用3或64 ......但我希望能够添加它们并使用0到63之间的数字进行检查。

1 个答案:

答案 0 :(得分:0)

在某种程度上,它取决于你所说的“更快”。 您的代码如何与这些元素进行交互将改变这一点。一般来说;但是,很少有人会看到CPU时间的任何显着影响。

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

只要您不打算在书籍中共享某些表格,第一个选项就会更清晰。

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