2013-10-10 4 views
0

Я пишу программу, в которой я инициализирующий массив символов следующим образомПонимание голец поведение инициализации массива

char array[28] = "\19TTTxxxxxxx Protocol\x00\x00\x00\x00\x00\x00\x00\x00"; 

Но приведенное выше утверждение дает предупреждение, что «инициализатор строка слишком долго». Но когда я меняю его на \20, он не дает предупреждения.

Может кто-нибудь объяснить, что здесь происходит?

ответ

2

"\20" - это один символ с восьмеричным значением 020. "\19" - это два символа, первый из которых имеет восьмеричное значение 01, а второе - '9'.

9 не является восьмеричной цифрой.

+0

Подробнее см. Спецификацию, раздел ** 6.4.4.4 Символьные константы **. –

Смежные вопросы