Скажем, у меня есть struct RGB, и я хочу создать struct RGBA, который наследует RGB:
struct RGB {
unsigned char r;
unsigned char g;
unsigned char b;
};
struct RGBA: RGB {
unsigned char a;
};
Оба будут использоваться для чтения несжатых данных изображения:
RGBA *pixel=static_cast<RGBA *>(image->uncompressed_data);
Вопрос: Является ли это безопасным, относительно макета памяти struct RGBA? Кто-нибудь гарантирует, что:
-
unsigned char aпоявляется послеRGB struct(не раньше) - Нет отступов между
struct RGBи параметром изstruct RGBA?
будет #pragma pack помочь здесь? Это все о макете памяти во время наследования.