Re: как избежать проблем с выравниванием?
От: gear nuke  
Дата: 16.10.09 15:07
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Что гарантирует отсутствие проблем с выравниванием


Стандарт. Все возможные данные уже выровнены, что бы получить невыровненные нужно прилагать усилия.

А>побайтный доступ к памяти?:


А>
А>void load(char const* buf)
А>{
А>unsigned long value = 0;
А>memcpy(&value, buf, sizeof(value));
А>}
А>


А>А так?


А>
А>void load(std::deque<char> const& buf)
А>{
А>unsigned long value = 0;
А>std::copy(buf.begin(), buf.begin() + sizeof(value),
А>    reinterpret_cast<char*>(&value));
А>}
А>


Оба варианта обращаются только к натурально-выравненным данным

А>Этого достаточно?


Смотря для чего. Вопрос не связан с low/big endian?
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.