C ++ POD структурное наследование? Существуют ли какие-либо гарантии относительно структуры памяти производных элементов?

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

Ответы на вопрос(3)

Ваш ответ на вопрос