代码之家  ›  专栏  ›  技术社区  ›  None

结构或指针的结构?

  •  0
  • None  · 技术社区  · 9 年前

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

    结构的结构:

    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 因为它们是固定的桌子。

    结构的结构 ,我可以通过设置 地位 但是 指向结构的指针 ,我可以用初始化 bookinstance.sheet[] = NULL 或者类似的东西。

    我很迷茫 pointers , struct malloc公司 Ruby ...

    需要明确的是:

    我要的不超过64个 床单 在我的 book 例子也许只会使用3或64…但我希望能够添加它们,并用0到63之间的数字检查它们。

    1 回复  |  直到 9 年前
        1
  •  0
  •   markshancock    9 年前

    您的代码将如何与这些元素交互将改变这一点。一般来说然而,很少有时候您可能会看到CPU时间的任何显著影响。

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

    只要你不打算在书中共享一些床单,第一个选项看起来会更干净。

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