![]() |
byte stream в struct?
Понимаю, что мой вопрос явно ламерский, но все же. У меня есть свежеполученная откуда-нибудь куча байтов, которую надо разместить в struct: первые два байта в первое поле структуры, вторые два байта - во второе поле структуры, следующие 4 байта - в третье поле... вопрос: как это сделать наиболее рационально и красиво? додумался до такого:
Код:
int another_byte; подскажите, как это покрасивше сделать? |
Собирать байты в int imho логичнее через двоичный and, а не через сложение.
Код зато вполне переносимый получился - будет корректно работать на любой платформе. |
Цитата:
PHP код:
|
batcom, это не у меня надо спрашивать, а у Arrest. Например, для того, чтобы потом не геморроиться с приведением типов в выражениях.
По поводу кода: садись, два! 1. Структура в памяти может храниться как упакованной, так и выровненной по длине машинного слова. 2. Порядок байтов в слове на разных платформах разный |
|
массивы тоже выравниваются
теоретически, char может быть и 16-битным (хотя во всех известных реализациях он 8-битный) кстати, код Arrest всё же непереносимый - в 16-битной системе int так же 16-битный |
Время: 17:20. |
Время: 17:20.
© OSzone.net 2001-