参数x尚未声明

时间:2013-05-11 14:26:02

标签: c microcontroller

我是编程新手,在定义函数时总是收到此错误:

The parameter IPWM_int has not been declared

该函数没有返回类型,但它不会产生任何错误。

以下是导致问题的函数(这不在main()函数中):

int IntToASCII(IPWM_int)
{
    uint8_t i;
    for(i=0;i<5;i++)
    {
        IPWM_string[i]=0x30;
    }

    sprintf(IPWM_string,"%5d", IPWM_int);

    return 0;
}

3 个答案:

答案 0 :(得分:2)

您需要为参数IPWM_int指定一个类型。看起来您希望IPWM_int成为此处参数的名称,因此,如果此参数为int,则您将拥有:

int IntToASCII(int IPWM_int)
{
    uint8_t i;
    for(i=0;i<5;i++)
    { 
        IPWM_string[i]=0x30;
    }

    sprintf(IPWM_string,"%5d", IPWM_int);

    return 0;
}

答案 1 :(得分:2)

这里的正确函数定义可能是(基于%d格式说明符和变量名称):

int IntToASCII(int IPWM_int)

此函数定义可以编译的唯一方法是它是否在ANSI C中,如下所示:

int IntToASCII(IPWM_int)
int IPWM_int;
{
    [...]

也许这解释了为什么你从编译中调整了这个代码?

答案 2 :(得分:1)

int IntToASCII(int IPWM_int)
            // ^^^ is required at function declaration and definition.

语法:

return-type functionName(dataType arg1, datatype arg2, ....)
{
  //function body
}