我是编程新手,在定义函数时总是收到此错误:
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;
}
答案 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
}