Полученные операции действуют вне ширины типа в C; Ошибка компилятора или в спецификации?Linux

Anonymous
Полученные операции действуют вне ширины типа в C; Ошибка компилятора или в спецификации?

Сообщение Anonymous »

Следующее происходит из этого вопроса, но отличается < /p>
Рассмотрите следующий код образец; < /p>
uint32_t *value = malloc(sizeof(uint32_t));
*value = 0xAAAABBBB;

int16_t *subset = (int16_t*) (value);

uint32_t test = 0x00000000;
uint32_t test2 = 0x00000000;
// IMPORTANT!!!!
// *subset vs *subset & 0xFFFF
test = (*subset
Это неверно и при тестировании на моем компиляторе (GCC 15.2.1 на Linux и GCC для Noabi Arm), и оператор, который, по -прежнему, по длине. По веру, что я верит в подночаю, на поступление в Bit Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Off Apport As Fort Arebff Affer As Fort Arebff Fort Arler 0x. 32), действуя таким образом на битах, которые составляют -16 по адресу подмножества.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ithin-spec

Вернуться в «Linux»