gpt4 book ai didi

c - 错误 : conflicting types for ‘six’ with gcc

转载 作者:太空宇宙 更新时间:2023-11-04 05:03:32 26 4
gpt4 key购买 nike

收到错误:尝试编译时“6”的类型冲突。

void main(){
const int k = 4;
six(&k);
}

float * six(const int *x)
{
float *p = malloc(sizeof(float));
*p = (float)*x;
return p;
}

最佳答案

这是正在发生的事情。

当编译器调用函数之前没有遇到函数原型(prototype)时,它会从调用本身推导出原型(prototype),并假定返回类型为 int。这就是它在您的示例中所做的。

后来它找到函数的定义,发现返回类型其实是float,和它前面推导出来的原型(prototype)不符。因此会出现类型冲突的错误(而不是缺少原型(prototype))。

当然,解决方案是在调用之前为函数提供原型(prototype)。

关于c - 错误 : conflicting types for ‘six’ with gcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18582731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com