Насколько мне удалось обнаружить, ширина типа bool
определяется реализацией. Но существуют ли логические типы фиксированной ширины, или я должен придерживаться, например, uint8_t
для представления логического значения фиксированной ширины?
[EDIT] Я сделал этот скрипт Python, который автоматически генерирует класс C++, который может содержать переменные, которые я хочу иметь возможность отправлять между микроконтроллером и моим компьютером. Это работает так: он также хранит два массива, содержащие указатель на каждую из этих переменных и размер каждой из них. Это дает мне необходимую информацию для простой сериализации и десериализации каждой из этих переменных. Однако, чтобы это работало, sizeof, endianness и т. д. типов переменных должны быть одинаковыми с обеих сторон, поскольку я использую один и тот же сгенерированный код с обеих сторон. Я не знаю, будет ли это проблемой, но я не ожидаю, что это будет. Я уже работал с этим (32-битным ARM) чипом раньше, и в прошлом у меня не было проблем с отправкой целых чисел и типов с плавающей запятой. Однако пройдет несколько дней, прежде чем я вернусь и смогу опробовать булевы значения на чипе. Это может стать более серьезной проблемой позже, поскольку этот код может быть повторно использован на других чипах позже.
Итак, мой вопрос. Существует ли тип фиксированной ширины bool
, определенный в стандартных библиотеках, или я должен просто использовать uint8_t для представления логического значения?
bool
фиксируется наtrue
иfalse
. Как 2 состояния могут иметь разную ширину? - person Thomas Matthews   schedule 25.12.2015bool
? - person Thomas Matthews   schedule 25.12.2015bool
будет 16-битным. Некоторые микроконтроллеры могут обращаться к биту как к минимальному размеру. - person Thomas Matthews   schedule 25.12.2015bool
составляет 8 бит, при этом все, кроме младшего бита, имеют значение 0. - person Keith Thompson   schedule 25.12.2015bool
? (Наличие фиксированной ширины не является ответом.) - person Keith Thompson   schedule 25.12.2015x & FLAG
должен стать!!(x & FLAG)
- person M.M   schedule 25.12.2015