AFAIK, связь с последовательным портом каким-то образом зависит от платформы / ОС, поэтому, когда вы пишете ее низкоуровневую часть, вы очень хорошо знаете платформу, ее порядковый номер и CHAR_BIT.Таким образом, вопрос не имеет никакого смысла.
Кроме того, не забывайте, что оборудование UART может передавать 7 или 8-битные слова, поэтому оно не зависит от архитектуры системы.
РЕДАКТИРОВАТЬ: Iупомянул, что слово UART является фиксированным (давайте рассмотрим режим 3 с 8 битами, как самый стандартный), само оборудование не отправит более 8 бит, поэтому, дав ему одну команду send
, оно отправит ровно 8 битнезависимо от CHAR_BIT машины.Таким образом, используя один send
для byte
и
unsigned short i;
send(i);
send(i>>8);
, вы можете быть уверены, что он будет работать правильно.
Кроме того, хорошей идеей будет узнать, что именноboost.asio
делает.