Я знаю, что стандарты C/С++ гарантируют минимум 8 бит на char, и что теоретически 9/16/42/что-то еще возможно, и поэтому все сайты о написании переносного кода предупреждают о допуске 8bpc, Мой вопрос в том, как это "не переносится"?
Позвольте мне объяснить. Как я вижу, есть 3 категории систем:
- Компьютеры. Я имею в виду настольные компьютеры, ноутбуки, серверы и т.д., работающие под управлением Mac/Linux/Windows/Unix/* nix/posix/whatever (я знаю, что этот список не совсем корректен, но вы получить идею). Я был бы очень удивлен, услышав о любой такой системе, где
char
не является точно 8 бит. (пожалуйста, поправьте меня, если я ошибаюсь) - Устройства с операционными системами. Сюда входят смартфоны и такие встроенные системы. Хотя я не буду очень удивляться, найдя такую систему, где
char
больше tham 8 бит, я не слышал об одном до настоящего времени (еще раз, пожалуйста, сообщите мне, если я просто не знаю). - Устройства с металлическим корпусом. - Видеомагнитофоны, микроволновые печи, старые сотовые телефоны и т.д. В этой области у меня нет ни малейшего опыта, так что здесь может случиться что-нибудь. Однако, действительно ли мне нужен мой код для кросс-платформы между моим рабочим столом Windows и моей микроволновой печью? Возможно, у меня когда-нибудь будет общий код для обоих?
Нижняя строка: существуют ли общие (более% 0.001) платформы (в категориях 1 и 2 выше), где char
не 8 бит? И верно ли мое предположение?