Скажем, у меня есть 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
помочь здесь? Это все о макете памяти во время наследования.