编译错误“无法忽略空值,因为它应该是”在C编程中[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译错误“无法忽略空值,因为它应该是”在C编程中[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我得到了那个无法弄清楚的错误。我查看了相关的问题,但我没有给出一个含义,有人告诉我哪个部分需要修复?
[错误]空值不应该被忽略,因为它应该是
我的代码
void getEdge(char str[],char *token){
*token = strtok(str, "_,");
while (token != NULL )
{
// printf("%s
", token);
token = strtok(NULL, "_,");
}
}
void getEdge(char str[],char *token);
int main () {
char arr[] = "A_B_10,A_F_6,B_C_6,C_B_10,D_A_3";
char *toke;
char result;
result = getEdge(arr,toke);
printf("%s
",result);
}
答案
检查这一行
result = getEdge(arr,toke);
你试图捕获返回类型为void
的函数的返回值。
请记住,void
是一个不完整的类型,它与任何其他类型都不兼容(在这种情况下,LHS是char
),因此编译器正确地抱怨。
那说,
*token = strtok(str, "_,");
里面的功能也看起来不太正确。检查那里的类型。
另一答案
在这里,您声明一个没有返回值的函数:
void getEdge(char str[],char *token)
在这里,您正在使用一个返回char值的函数
char result;
result = getEdge(arr,toke);
所以解决方案可能是改变你的功能:
char getEdge(char str[],char *token)
{
......
return char_value;
}
以上是关于编译错误“无法忽略空值,因为它应该是”在C编程中[重复]的主要内容,如果未能解决你的问题,请参考以下文章