1. 程式人生 > >對error C2079: 'stu' uses undefined struct 'Students'的解釋

對error C2079: 'stu' uses undefined struct 'Students'的解釋

以下是錯誤程式原始碼舉例(其實是我自己在學習過程中出現的錯誤):

#include <stdio.h>
struct Date
{
	int year;
	int month;
};
struct Student
{
	char sno[11];
	char name[10];
	int Gshu;
	int Ccheng;
	int Yyu;
	float Average;
	Date birthday;
};
int main()
{
	struct Students stu;
	printf("輸入學號:");
	gets(stu.sno);
	printf("輸入姓名:"
); gets(stu.name); printf("高數成績:"); scanf("%d",&stu.Gshu); printf("C程成績:"); scanf("%d",&stu.Ccheng); printf("英語成績:"); scanf("%d",&stu.Yyu); stu.Average=(stu.Gshu+stu.Ccheng+stu.Yyu)/3.0; printf("輸入出生年月"); scanf("%d%d",&stu.birthday.year,&stu.birthday.month); printf("學號 姓名 高數 C程 英語 平均成績 出生年月\n"
); printf(" %11s",stu.sno); printf(" %6s",stu.name); printf(" %3d %3d %3d %4.1f",stu.Gshu,stu.Ccheng,stu.Yyu); printf(" %d年%d月\n",stu.birthday.year,stu.birthday.month); return 0; }

執行錯誤如下:
error C2079: 'stu' uses undefined struct 'Students'

這個地方的錯誤是將上文中的Student誤寫為Students,於是出現了未定義的錯誤,改正方式只要將Students改為Student就可以解決。但是如果不是因為筆誤,而是正確的寫出了Student,但是仍然為錯誤的話,解決方法是檢查上文中有沒有對Student進行定義(struct),通過對Student定義即在前文(主函式外)新增:struct Student

,就可以解決。