char()
char() приводит любое значение к типу char — одному байту, который можно использовать как ASCII-символ или маленькое целое число.
Полная статья
Описание
char() преобразует произвольное значение к типу char. Тип char занимает один байт и может использоваться двояко: как символ (например, буква или цифра в ASCII) или как маленькое целое число. Какой смысл вкладывать — зависит от задачи.
Явное приведение через char() полезно, когда компилятор не может самостоятельно вывести нужный тип, или когда вы хотите подчеркнуть намерение в коде.
Синтаксис
char(x)(char) x
Параметры
x: значение любого типа, которое нужно преобразовать.
Возвращает
Значение типа char.
Где применяется
- Формирование строк и символьных массивов вручную: когда нужно записать конкретный символ по его ASCII-коду.
- Передача одиночных символов через
Serial.write()или другие коммуникационные функции. - Арифметика с символами: вычисление смещения от базовой буквы, например для шифрования.
- Работа с символьными таблицами или протоколами, где данные кодируются как ASCII.
Практические замечания
char(65)вернёт символ'A': это прямое соответствие ASCII-таблице, где десятичное 65 — заглавная латинская «A».- На разных платформах
charможет быть знаковым (signed char, диапазон −128…127) или беззнаковым (unsigned char, диапазон 0…255). Стандарт C++ оставляет это на усмотрение реализации, поэтому поведение при значениях выше 127 может отличаться. - Если вам нужно хранить именно «сырой» байт без привязки к знаку, надёжнее явно использовать
byteилиuint8_t— их семантика однозначна на любой платформе. - При передаче числа, выходящего за диапазон
char, произойдёт усечение: берётся только младший байт. Например,char(300)даст44, потому что300 % 256 = 44. - Если вы видите в
Serial Monitorнеожиданный символ вместо числа — скорее всего, переменная имеет типchar, иSerial.print()интерпретирует её как символ. Чтобы вывести числовое значение, приведите её кint.