在运行这个程序时,我得到了一个错误
[错误]形式参数1的类型不完整
在dev cpp上,我通过main调用函数assign,得到了上述错误。
#include <stdio.h>
void assign(struct username i);
void show1(struct username i);
struct username
{
char name[30];
int rollno;
float salary;
};
int main(void)
{
struct username i;
assign(i);
show1(i);
}
void assign(struct username i)
{
puts("enter name");
scanf("%s",i.name);
puts("Enter roll no");
scanf("%d",i.rollno);
puts("Enter salary");
scanf("%f",i.salary);
}
void show1(struct username i)
{
printf("\n---------------------------------\n");
printf("%s",i.name);
printf("\n------%d-------\n",i.rollno);
printf("%f",i.salary);
}
最佳答案
#include <stdio.h>
struct username {
char name[30];
int rollno;
float salary;
};
void assign(struct username *i);
void show1(struct username *i);
int main(void)
{
struct username i;
assign(&i);
show1(&i);
}
void assign(struct username *i)
{
puts("enter name");
scanf("%s", i->name);
puts("Enter roll no");
scanf("%d", &i->rollno);
puts("Enter salary");
scanf("%f", &i->salary);
}
void show1(struct username *i)
{
printf("\n---------------------------------\n");
printf("%s", i->name);
printf("\n------%d-------\n", i->rollno);
printf("%f", i->salary);
}
我猜这就是你想要的。
scanf
需要指向某个类型的指针,struct
按值传递到函数中,因此如果要在main中看到结果,则需要通过引用传递。关于c - 调用函数时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30288637/