c警告:指针非法转换为带字符的整数,结构非法转换为字符串



我有一个非常烦人的问题。。。

我必须能够从微控制器将一些结构中的文本显示到LCD显示器上。

这些是受影响的区域:

struct menu_id {
    char id;
    char menu[11];
    char submenu;
};
void main (void){
    struct menu_id mainmenu[5] = {
    {0, "CHNL1", 1},
{0, "CHNL2", 2},
{0, "Mal Codes", 3},
{1, "CHNL1...", 0},
{2, "CHNL2...", 0},
};
    print(mainmenu[0].id, mainmenu[0].menu);
}
void print (char line1, char line2)
{
    char temp[11];
    LCD_Register_Com();                                                      //Set to Command Register
    OutputChar(LCD_Line0);                                                  //Line 0,0
    LCD_Register_Data();                                                    //Set to Data Register
    sprintf(temp, "%c", line1);
    OutputString(temp);
    LCD_Register_Com();                                                     //Set to Command Register
    OutputChar(LCD_Line1);                                                  //Line 1,0
    LCD_Register_Data();                                                    //Set to Data Register
    sprintf(temp, "%c", line2);
    OutputString(temp);
}

每次我试图构建代码时,它都会抛出以下错误Main_Test.c:108:警告:当我调用打印函数"print(mainmenu[0].id,mainmenu[0].menu);".时,指针非法转换为整数

任何帮助都将不胜感激。

谢谢。

void print (char line1, char line2)

更改为

void print (char line1, char* line2)

sprintf(temp, "%c", line2);

sprintf(temp, "%s", line2);


mainmenu[0].menu

您正在向函数传递一个字符串而不是字符。

struct menu_id {
    char id;
    char menu[11];  <- string
   char submenu;
};

在函数声明void print (char line1, char line2)中,line2的类型应为char *,因为菜单是字符数组