2013-02-12 24 views
0

我有一个非常恼人的问题...警告:指针的非法转换与char和结构整数串

我必须要能够显示从结构中的一些文字从上微控制器的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);”。

任何帮助将不胜感激。

谢谢。

回答

3
void print (char line1, char line2) 

变化到

void print (char line1, char* line2) 

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

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


With

mainmenu[0].menu 

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

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

+1,它说“指针为整数”,而不是“字符指针”,这一事实表明,原型也丢失了,但这绝对是这里的主要问题。 – dasblinkenlight 2013-02-12 16:15:33

+1

嘿,谢谢,帮助建立和清洁前线。原型被宣布。我应该包括那与我的问题对不起:) – user1651453 2013-02-12 16:27:48

1

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

相关问题