typedef struct node{
char one;
char two;
struct node *next;
} nodea;
Run Code Online (Sandbox Code Playgroud)
我在考虑编译器填充方面,有什么方法可以使sizeof(nodea)小于16?
您可以使用#pragma pack编译器指令http://msdn.microsoft.com/en-us/library/2e70t5y1%28v=vs.80%29.aspx
#pragma pack(push)
#pragma pack(1)
typedef struct node {
char one;
char two;
struct node* next;
} nodea;
#pragma pack(pop)
Run Code Online (Sandbox Code Playgroud)
除非它是非常规的东西,否则可以打包成1 + 1 + 8 = 10个字节.如果指针必须对齐,则为16个字节.如果你把指针放在第一个并且接下来是字符,那么就是10个字节,但是当你创建这些结构的数组时,对齐要求仍然可以使它成为16.
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |