我理解的结构比为“实施具体的”,只是不知道是否有任何简单的方法来计算结构比对,例如:有没有简单的方法(宏?)来告诉结构对齐?
typedef struct
{
char c;
int i;
} test;
if sizeof(test) - (sizeof(char) + sizeof(int)) == 0 means alignment is 1 byte;
if sizeof(test) - (sizeof(char) + sizeof(int)) == 1 means alignment is 2 bytes;
// ...etc...
是上述的前提下可靠地真的吗?
的#include 结构虚设 { 炭X; int i; }; size_t test_alignment = offsetof(struct dummy,i); 以上工作? –
取决于“作品”的含义。它将test_alignment设置为'struct dummy'里面'i'的对齐方式。如果这就是你想要它做的,那么它肯定会奏效。 –
这将测试'int'类型的对齐(我假设你想测试定义的类型'test'的对齐?) – caf