Как инициализировать переменную из одного символа в десятичное число (с инициализатором) - PullRequest
0 голосов
/ 28 ноября 2018

Это вопрос о синтаксисе C.

У меня есть эта однобайтовая длинная символьная переменная, которую я инициализирую таким образом:

const char timeband = "\xe";

Это инициализирует ее в десятичное значение 14. I 'Я использую hex, потому что я не знаю, как указать десятичную в инициализаторе.Как бы я это сделал?

Установка значения с помощью оператора присваивания или использование восьмеричного не является опцией.

РЕДАКТИРОВАТЬ: я должен был сказать

const char timeband[1] = "\xe";

И явсе еще хочу уйти от гекса.Использование '\ xe' не дает ответа на вопрос.

Ответы [ 4 ]

0 голосов
/ 28 ноября 2018

Я собираюсь ответить на свой вопрос:

Вы не можете сделать это.

0 голосов
/ 28 ноября 2018

Полагаю, вы ищете const char timeband[1] = { 14 }; Не нужно увлекаться шестнадцатеричным обозначением.

0 голосов
/ 28 ноября 2018

Невозможно указать десятичные символьные значения в строковом литерале.

Вы можете сделать это

const char timeband[1] = { 14 };

Для длинных строк этот тип инициализации может быть очень утомительным и очень быстрым:

const char foo[] = { '1', '2', '3', 14 };

но это то, что вы получите, если хотите десятичную дробь.

0 голосов
/ 28 ноября 2018

Для одиночных символов вам нужно использовать одинарные кавычки:

const char timeband = '\xe';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...