Доброго времени суток!
Предположим, есть два массива, объявленных следующим образом:
unsigned char byte_array[N];
unsigned short word_array[N/2];
в word_array есть какие-то полезные данные, которые затем копируются в byte_array:
memcpy(byte_array, word_array, N);
затем идет такая работа с byte_array:
unsigned short word = *((unsigned short *)&byte_array[4]);
насколько я понимаю, в результате в word будет записано то же, что лежит в word_array[2] (я правильно понимаю?).
Но в одном примере кода мне попалась на глаза такая конструкция:
unsigned short word = ((unsigned short)(byte_array[4]));
что в word запишется в этом случае?
Мне кажется, что из byte_array возьмется 5-й байт, который будет затем приведен к short (старший байт при этом окажется нулевым),
а затем результат будет записан в переменную word. Я ошибаюсь?
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум приведение типов (2016)
- Форум Приведение типов (2017)
- Форум C++ — приведение типов (2011)
- Форум приведение типа функции (2008)
- Форум GCC. Приведение типов. (2005)
- Форум C++ и приведение типов (2012)
- Форум ссылки и приведение типов (2010)
- Форум Lisp и приведение типов (2008)
- Форум Тип многомерного массива. (2016)
- Форум GCC: приведение типа отменяет квалификаторы указуемого типа (2007)