我在许多论坛中进行了搜索,但没有找到我的问题的答案:

我试图了解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]结尾吗?

谢谢你的帮助。

最佳答案

您的所有宏都会产生始终以\ 0终止的字符串文字。请显示lcd.createChar函数的签名。也许会更加清楚问题所在。

关于c++ - “\x01” [0]为什么在字符串的末尾出现[0],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34763201/

10-10 14:47