私はこの構造体を持っていますが、メモリ内で 4 バイトごとに使用されていないことを知っているので、構造体をメモリ内で正しく配置する必要があります。これを行う方法が正確にはわかりませんが、そうする必要があることはわかっていますし、どこで行う必要があるかも知っています。
typedef struct _vol_meta {
uint16_t crc; // 2 bytes
uint8_t ver_major; // 1 byte
char pad1; // need to align here - 1 byte
uint16_t size; // 2 bytes
uint8_t ver_minor; // 1 byte
char pad2; // need to align here - 1 byte
uint8_t pagenum; // 1 byte
uint8_t rownum; // 1 byte
char pad3[2]; // align here - 2 bytes
uint8_t name[15]; // 15 bytes
// not sure how I'm supposed to align the array of uint8_t vars?
} VOL_META;
のようなある種のcデータ型はありますか
align 2
それはコンパイラに次の 2 バイトか何かをスキップするように指示しますか? ここでちょっと迷った。