警告:赋值使得整型指针没有强制转换
这是一个很常见的问题,但我没有得到我的答案,所以再次询问。警告:赋值使得整型指针没有强制转换
我定义为structers:
struct f_lock{ int x;
struct f_lock *next;
};
然后说我有一个函数:
struct f_lock *new_node() {
struct f_lock *new_f_lock;
.....
return new_f_lock;
}
这是我从另一个函数调用:
struct f_lock *new_f_lock; new_f_lock = new_node(); //This line gives the error warning:assignment makes pointer from integer without a cast
将grateull求助 谢谢
回答:
您是否也收到错误implicit declaration of function ‘new_node’
?因为在这种情况下,你可能忘记了在你调用它的模块中声明new_node
。 (如果你没有得到的错误,重新编译-Wall
打开更多的警告。)
警告消息的说明:如果new_node
未被正确声明,编译器将假定它返回int
,这是一种的默认返回类型(由于历史原因)。
回答:
我似乎记得得到这个(而误导)的错误信息,一旦当我忘了声明函数为采取其在C需要void
(但不是C++)的功能,不带参数:
struct f_lock *new_node() {
struct f_lock *new_f_lock;
.....
return new_f_lock;
}
应该是:
struct f_lock *new_node(void) {
struct f_lock *new_f_lock;
.....
return new_f_lock;
}
以上是 警告:赋值使得整型指针没有强制转换 的全部内容, 来源链接: utcz.com/qa/264268.html