gpt4 book ai didi

c - 它给我错误 "conflicting typer for ' mysqrt'”

转载 作者:行者123 更新时间:2023-11-30 20:39:20 28 4
gpt4 key购买 nike

#include <stdio.h>
#include <math.h>

float mysqrt (float x)

{

float y;
x=x-1;
y= 1+(x/2)-(pow(x,2)/2)+(pow(x,3)/8)-(5*pow(x,4)/128);


return y;

}

int main()

{

printf("%f",mysqrt(5));
}

我在这个网站上搜索了较旧的答案并尝试使用它们,但我仍然无法弄清楚为什么它不起作用

最佳答案

我认为您发布的代码不太准确。

您可能在提供函数声明之前调用 mysqrt() 。在旧版本的 C 标准 (C89) 中,这是允许的,并且该函数将被赋予以下隐式声明:

int mysqrt();

也就是说,一个函数接受未知数量的非可变参数,并返回 int。这显然与函数的实际定义相矛盾。

在该标准的最新版本 (C99/C11) 中,如果您尝试调用尚未声明的函数,编译器需要生成诊断消息。

您应该更改代码,以便函数定义出现在函数调用之前,在函数调用之前提供函数声明。例如:

float mysqrt (float);

int main()
{
printf("%f",mysqrt(5));
}

float mysqrt (float x)
{
/* Function body */
}

关于c - 它给我错误 "conflicting typer for ' mysqrt'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822864/

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