"\x01"[0] Почему в конце строки присутствует [0]

Я искал на многих форумах, но не нашел ответа на свой вопрос:

Я пытаюсь понять программное обеспечение внутри моего 3D-принтера (прошивка Marlin), и я нашел этот код C++:

#define LCD_STR_BEDTEMP     "\x00"
#define LCD_STR_DEGREE      "\x01"
#define LCD_STR_THERMOMETER "\x02"
#define LCD_STR_UPLEVEL     "\x03"
#define LCD_STR_REFRESH     "\x04"
#define LCD_STR_FOLDER      "\x05"
#define LCD_STR_FEEDRATE    "\x06"
#define LCD_STR_CLOCK       "\x07"
#define LCD_STR_ARROW_RIGHT "\x7E"  /* from the default character set */

lcd.createChar(LCD_STR_BEDTEMP[0], bedTemp);
lcd.createChar(LCD_STR_DEGREE[0], degree);
lcd.createChar(LCD_STR_THERMOMETER[0], thermometer);
lcd.createChar(LCD_STR_UPLEVEL[0], uplevel);
lcd.createChar(LCD_STR_REFRESH[0], refresh);
lcd.createChar(LCD_STR_FOLDER[0], folder);
lcd.createChar(LCD_STR_FEEDRATE[0], feedrate);
lcd.createChar(LCD_STR_CLOCK[0], clock);

lcd.createChar команды Arduino, с которыми у меня нет проблем, но я не понимаю, почему все #define строки заканчиваются на [0]?

Спасибо за любую помощь.

1 ответ

Все ваши макросы производят строковые литералы, которые всегда заканчиваются на \0. Пожалуйста, покажите подпись lcd.createChar функция. Возможно, будет более понятно, в чем проблема.

Другие вопросы по тегам