调用函数时出错
Error while calling a function
关于 运行 这个程序我收到错误
[错误] 形式参数 1 的类型不完整
在 dev cpp 上,我通过 main 调用函数分配,但出现上述错误。
#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);
}
您声明了一个接受参数的函数,当时未声明类型,因为 struct username
被引入范围 在 首次使用之后。
使用前向声明或交换函数声明和结构定义。
好吧,尝试使用另一个 IDE 我会像许多其他人一样推荐 code:blocks IDE,因为我使用 dev cpp 有一段时间,但有时我会遇到问题但是当我 运行 另一个 IDE 中的代码工作正常。
尝试结构(用户名 i);
#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 中看到结果,你需要通过引用传递它。
关于 运行 这个程序我收到错误 [错误] 形式参数 1 的类型不完整 在 dev cpp 上,我通过 main 调用函数分配,但出现上述错误。
#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);
}
您声明了一个接受参数的函数,当时未声明类型,因为 struct username
被引入范围 在 首次使用之后。
使用前向声明或交换函数声明和结构定义。
好吧,尝试使用另一个 IDE 我会像许多其他人一样推荐 code:blocks IDE,因为我使用 dev cpp 有一段时间,但有时我会遇到问题但是当我 运行 另一个 IDE 中的代码工作正常。 尝试结构(用户名 i);
#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 中看到结果,你需要通过引用传递它。