繁体   English   中英

C函数原型

[英]C Function Prototype

在这里学习C,我对如何使用函数原型感到很困惑。

我主要在将函数调用到main时遇到问题。 我确定我在这里有些混乱,因为所有这些操作就是打印内存中的所有内容。

感谢您的帮助。

#include <stdio.h>


double source_volt(double vs);


int main()
{
    double source_volt(double vs);
    double vs;
    printf("%lf", vs);
    return 0;
}


double source_volt(double vs)
{

    int valid = 0;
    do
    {
        printf("Enter source voltage Vs in volts: ");
        scanf("%lf", &vs);

        if (vs < 0 || vs > 100)
        {
            valid = 0;
            printf("Please enter a number between 0 and 100.\n");
        }
        else
            valid = 1;
    }while(!valid);
    return vs;
}

这对您不起作用:

int main()
{
    double source_volt(double vs); //You already declared the function, 
                                   //you dont need the doubles
    double vs;
    printf("%lf", vs);
    return 0;
}

代替:

int main()
{
    double vs;
    vs = double source_volt(vs); //The double keyword is gone
    printf("%lf", vs);
    return 0;
}

但实际上,您根本不需要在源电压上争论。

您可以将该函数重写为:

double source_volt(void)
{
    double vs;
    int valid = 0;
    do
    {
        printf("Enter source voltage Vs in volts: ");
        scanf("%lf", &vs);

        if (vs < 0 || vs > 100)
        {
            valid = 0;
            printf("Please enter a number between 0 and 100.\n");
        }
        else
            valid = 1;
    }while(!valid);
    return vs;
}

main double source_volt(double vs);内部的行double source_volt(double vs); 实际上重新声明了该功能。 然后使用vs in main而不进行初始化。

函数source_volt的定义如下:

double vs;
vs = source_volt( vs );

但是,我也想指出,通过将double传递给tho函数并不能获得任何好处。 您可以在source_volt声明一个局部变量,然后将其返回以获得相同的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM