Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 形式参数1的类型为不完整错误_C++_C_Struct_Scope - Fatal编程技术网

C++ 形式参数1的类型为不完整错误

C++ 形式参数1的类型为不完整错误,c++,c,struct,scope,C++,C,Struct,Scope,我正试图写一个程序来打印学生的信息 但是代码::Blocks说: 错误:形式参数1的类型不完整。 错误:“displayStudentInformation”的类型冲突 这就是代码 #include <stdio.h> void displayStudentInformation(struct student stu); struct student{ int id; char *firstName; char *lastName; float gpa; };

我正试图写一个程序来打印学生的信息 但是代码::Blocks说:

错误:形式参数1的类型不完整。 错误:“displayStudentInformation”的类型冲突 这就是代码

#include <stdio.h>

void displayStudentInformation(struct student stu);

struct student{
  int id;
  char *firstName;
  char *lastName;
  float gpa;
};

int main()
{
  struct student stu1;
  stu1.id = 101;
  stu1.firstName = "Ali";
  stu1.lastName = "Alavi";
  stu1.gpa = 18;

  displayStudentInformation(stu1);

  return 0;
}

void displayStudentInformation(struct student stu)
{
  printf("Student information :\n");
  printf("ID : %d",stu.id);
  printf("First Name : %s",stu.firstName);
  printf("Last Name :%s",stu.lastName);
  printf("GPA : %.2f",stu.gpa);
  printf("\n");
}
#包括
无效显示学生信息(结构学生stu);
结构学生{
int-id;
char*名字;
char*lastName;
浮动gpa;
};
int main()
{
结构学生stu1;
stu1.id=101;
stu1.firstName=“Ali”;
stu1.lastName=“Alavi”;
stu1.gpa=18;
显示学生信息(stu1);
返回0;
}
无效显示学生信息(结构学生stu)
{
printf(“学生信息:\n”);
printf(“ID:%d”,stu.ID);
printf(“名字:%s”,stu.firstName);
printf(“姓氏:%s”,stu.lastName);
printf(“GPA:%.2f”,标准GPA);
printf(“\n”);
}

在函数原型之前定义结构:

struct student {
  int id;
  char *firstName;
  char *lastName;
  float gpa;
};

void displayStudentInformation(struct student stu);
现在已经知道了结构,可以在函数原型中使用

请注意,您可以
typedef
struct student,以避免每次要声明
student
类型的变量时都必须写入
struct student

typedef struct student {
  int id;
  char *firstName;
  char *lastName;
  float gpa;
} student;

void displayStudentInformation(student stu);
<> P>因为你的问题也被“C++”标记为某种原因(?)我必须在这里提到C++中,你不需要<代码> TyPulf< /Cuff>它。即使没有
typedef
,也可以使用
student
而不是
struct student


如果您要使用C++而不是C,那么我也应该提到,建议使用<代码> STD::String < /C> >而不是使用<代码> char */COD>字符串。请注意,C++与C语言是一种非常不同的语言。如果当前的目标或任务是学习C,那么不要只使用C++编译器编译C代码。请使用C编译器。如果使用C++编译器,则可以(可能会)使用有效的C++代码,但不有效的C.< /P>交换声明:<代码>结构> <代码>和代码>显示学生信息< /代码>,在代码< > DePaseSubjor(声明)之前声明<代码>结构学生< /代码>。@阿明AtAee只是编译程序作为C++程序。VladfromMoscow:C和C++语法之间没有根本区别,但我不喜欢C++ C++。但是,AjaTaaEE程序仍然会编译成C++程序。