boolean — есть ли тип bool фиксированной ширины в стандартном C ++?

Насколько я мог найти, ширина bool Тип определяется реализацией. Но существуют ли булевы типы фиксированной ширины, или я должен придерживаться, например, uint8_t представлять bool фиксированной ширины?

[РЕДАКТИРОВАТЬ] Я сделал этот скрипт на python, который автоматически генерирует класс C ++, который может содержать переменные, которые я хочу передавать между микроконтроллером и моим компьютером. Он работает так, что он также поддерживает два массива, в которых хранится указатель на каждую из этих переменных и размер каждой из них. Это дает мне необходимую информацию, чтобы легко сериализовать и десериализовать каждую из этих переменных. Однако, чтобы это работало, размер переменных, порядковый номер и т. Д. Типов переменных должны быть одинаковыми с обеих сторон, поскольку я использую один и тот же сгенерированный код с обеих сторон.
Я не знаю, будет ли это проблемой, но я не ожидаю, что это будет. Я уже работал с этим (32-битным ARM) чипом раньше и не имел проблем с отправкой целочисленных и плавающих типов в прошлом. Однако пройдет несколько дней, пока я не вернусь и не смогу попробовать булевы на чипе. Это может быть более серьезной проблемой позже, так как этот код может быть повторно использован на других чипах позже.

Итак, мой вопрос. Есть ли фиксированная ширина bool тип определен в стандартных библиотеках или я должен просто использовать uint8_t для представления логического значения?

5

Решение

Нет. Просто используйте uint8_t если вам нужно быть уверенным в размере. Любой целочисленный тип может легко рассматриваться как логический в языках, связанных с Си. Увидеть https://stackoverflow.com/a/4897859/1105015 для длительного обсуждения того, как boolРазмер не гарантируется стандартом для каких-либо конкретных значений.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]