-3

我真的不明白,我的代码有什么问题。我之前做的非常相似,没有出现编译错误。我有一个代码:

double shape(int i,double x)
{
    double fun,h,L;
    int n;
    n=100;
    L=1.0;
    h=L/n;
    x=x-i*h;
    x=fabs(x);
    if(x<=h)
    fun=(1.0-x/h);
    else
    fun=0.0;
    return fun;
}

void main()
{
    int N=101;
    double O,F,h;
    h=0.001;
    for(int i=0;i<N;i++)
    {
        F=h*(i+1);
        O=shape(i,F);
    }
}

在最后一行它给了我编译错误:错误:发现'unsigned int'预期双重警告:缺少原型。为什么?

4

1 回答 1

0

错误:发现“无符号整数”预期双重警告:缺少原型。

这表明您正在调用一个没有原型的函数。发生这种情况时,您的编译器假定默认返回值类型为unsigned int. 解决方案是添加缺少的原型。

您发布的代码不完整。似乎调用shape触发了错误。但是shape定义很明确。最有可能在实际代码shape中是在不同的文件中,或者首先在下面声明main

您应该配置您的编译器,使其在未声明函数时不接受函数调用。C 语言接受这些东西的事实可以追溯到该语言的早期。您应该配置您的编译器以禁止这些古老而糟糕的做法。

当您编译时,您的程序将在运行时失败。您将Fmain.

最后,您的main函数声明不正确。它应该是

int main(void)
于 2013-03-01T11:35:09.730 回答