"\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
функция. Возможно, будет более понятно, в чем проблема.