Я прочитал this вопрос и очень запутался в том, что я должен делать с моим кодом. Если мое чтение верное, мой код ниже не определен в соответствии с текущим стандартом. Ниже все, что мне нужно, и я действительно не могу найти лучшего способа сделать это. Использование левого сдвига с OR, определенно, не то, что я хочу. Разве это прекрасно, если оставить его таким образом?Является ли считывание массива без знака без целого числа без знака неопределенным и, следовательно, небезопасным?
EDIT: И да, я читаю n
после установки значений rbg
, а не n.
union Pixel {
unsigned char rgb[4];
uint32_t n;
Pixel():
n(0) {}
};
делать то, что? Какова ваша цель? –
Ничего плохого. Но если вы получаете доступ к члену, который вы не поместили туда, это UB. – nwp
@LightnessRacesinOrbit Я хочу быть уверенным, что мой код не содержит неопределенного поведения. – xiver77