Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.104.238] |
|
Сообщ.
#1
,
|
|
|
Хотелось бы избавиться от глобальных переменных в программе, и даже констант.
Сейчас есть строка: const string RazdLN = { 0x5, '9', '9', '9' }; Хотелось бы вместо нее записать #define RazdLN ... Проблема в том, что первым символом в строке находится байт содержащий число 0х5. Сейчас все работает нормально, но попытки решить задачку пока не увенчались успехом. |
Сообщ.
#2
,
|
|
|
'\x5' |
Сообщ.
#3
,
|
|
|
Цитата Dushevny @ '\x5' Ты не понял. Я могу написать: #define RazdLN "999" Но первый байт 5, если я пишу: #define RazdLN "\х5999" то транслятор говорит, что слишком длинная константа. Напиши твой вариант кода, пожалуйста. |
Сообщ.
#4
,
|
|
|
Цитата a_n_y_a @ Напиши твой вариант кода, пожалуйста. #define RazdLN "\005999" |
Сообщ.
#5
,
|
|
|
Цитата a_n_y_a @ Да, что-то я ступил. Не обратил внимания на тип string, зацепился за инициализацию массивом char и решил, что тут нужнен массив без завершающего нуля на конце. Вот заодно и для себя что-то новое узнал тут: Ты не понял. Я могу написать: #define RazdLN "999" Цитата Hexadecimal escape sequences have no length limit and terminate at the first character that is not a valid hexadecimal digit. If the value represented by a single hexadecimal escape sequence does not fit the range of values represented by the character type used in this string literal (char, char16_t, char32_t, or wchar_t), the result is unspecified. Тогда как написал JoeUser: поскольку у вас следом идет допустипый для шестнадцатиричного числа символ '9' - придется перевести число в восьмеричную систему. |
Сообщ.
#6
,
|
|
|
Цитата a_n_y_a @ Но первый байт 5, если я пишу: #define RazdLN "\х5999" то транслятор говорит, что слишком длинная константа. Напиши твой вариант кода, пожалуйста. Еще подумал. Есть решение: #define RazdLN "\х5""999" |
Сообщ.
#7
,
|
|
|
Цитата Dushevny @ Еще подумал. Есть решение: #define RazdLN "\х5""999" Спасибо, все заработало. |