Полученные операции действуют вне ширины типа в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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