我为我的OpenGL纹理格式创建了标题。我希望将结构大小对齐到512以便将来添加必要的成员。我在我的结构之前和之后添加了#pragma pack(push, 1)
#pragma pack(pop)
。我的意思是像填充(?)bootloader一样对齐到512字节。如何将结构与指定尺寸对齐
更新: 我已经在ideone上做了一些代码。这是它:http://ideone.com/CW0kY4。
我为我的OpenGL纹理格式创建了标题。我希望将结构大小对齐到512以便将来添加必要的成员。我在我的结构之前和之后添加了#pragma pack(push, 1)
#pragma pack(pop)
。我的意思是像填充(?)bootloader一样对齐到512字节。如何将结构与指定尺寸对齐
更新: 我已经在ideone上做了一些代码。这是它:http://ideone.com/CW0kY4。
您可以将一个成员添加到您的结构中,该成员称为“保留”,它是一个字节数组。这使得总大小为512字节:
typedef struct
{
uint8_t Member1;
uint8_t Member2;
uint8_t Reserved[510]; // Reserved data for future use which is the remainder
} Data;
或者您可以使用一个嵌套的结构,可以自动计算在编译时数据的大小:
typedef struct
{
int Member1;
int Member2;
} Data;
typedef struct
{
Data TheData;
uint8_t Reserved[512-sizeof(Data)];
} FullData;
你可以尝试把你的整个结构成'联合'与'char [512]'元素。 – Logicrat
你真的是指“对齐”,还是“填充到X字节”? –