结构的实际尺寸是对齐后的结构尺寸.我的意思是sizeof返回内存中结构的大小.如果你想拥有一个在字节上对齐的结构,你应该告诉编译器这样做.例如这样的事情:
#ifdef _MSVC
# pragma pack(push)
# pragma pack(1)
# define PACKED
#else
# define PACKED __attribute((packed))
#endif
struct byte_aligned {
char c;
int i;
} PACKED;
#ifdef _MSVC
# pragma pack(pop)
#endif
Run Code Online (Sandbox Code Playgroud)
现在sizeof(byte_aligned)返回5并且实际上在内存中有5个字节
| 归档时间: |
|
| 查看次数: |
670 次 |
| 最近记录: |