0

我对编程很陌生,在定义函数时总是收到这个错误:

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;
}
4

3 回答 3

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;
}
于 2013-05-11T14:45:51.737 回答
2

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

int IntToASCII(int IPWM_int)

这个函数定义可以编译的唯一方法是它是否在 ANSI C 中,并且看起来像这样:

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

也许这解释了为什么您从编译的代码改编而来?

于 2013-05-11T14:46:39.510 回答
1
int IntToASCII(int IPWM_int)
            // ^^^ is required at function declaration and definition.

句法:

return-type functionName(dataType arg1, datatype arg2, ....)
{
  //function body
}
于 2013-05-11T14:45:23.667 回答