结构内存对齐 - 这是如何调用的?

时间:2015-10-20 09:41:47

标签: c++ struct memory-alignment

我有一些代码用这种方式读取32位的块

struct data{
    unsigned int value : 12;
    unsigned int foo   : 1;
    unsigned int bar   : 2;
    /*...*/          //  ^^ adds up to 32 bits
}

int* rawdata;
for (;;) {
    data* d = (*data)rawdata;
    unsigned int value = d->value;
    rawdata++;
}

我或多或少知道它是如何运作的。 : 12告诉编译器读取12位(然后将它们解释为unsigned int)。然而,当我在网上寻找这个时,我找不到任何东西,因为我不知道要搜索什么("结构内存对齐"没有产生任何有用的结果)。因此我的问题是:

这项技术如何调用?我在哪里可以找到有关此功能的详细信息?

0 个答案:

没有答案