Компилятор gcc не распознает мою структуру - PullRequest
0 голосов
/ 31 марта 2019

Я пишу программу для какой-то задачи, у меня есть этот заголовочный файл с именем course.h, где я написал эту структуру:

typedef struct Course{
    int numCourse;
    char nameofCourse[MAX_NAME_OF_COURSE];
    int maxStudents;
    int currentStudents;
    Grades studentsGrades[MAX_COURSES];
}Course;

после этого, Я написал функцию, которая возвращает c1 из типа Course:

Course getNewCourse(){
    Course c1;
    int i, num=0;
    int st_now=0; /*for currently student in the course*/
    char temp1[MAX_NAME_OF_COURSE]; /*for course name*/
    char temp2[FIVE]; /*for student id*/
    temp1[0] = '\0'; /*clean the string befor use it*/
    temp2[0] = '\0';

    printf("Please enter the course number (FIVE digits):\n"); /*add the course number*/
    clear_buffer();
    while(scanf("%d", &num)){
        if(cheakIfNumCourseIsProper(num)==1){
            c1.numCourse = num;
            break;
        }
        printf("Error! Please try again:\n");
    }

    printf("Please enter the course name (FIVE digits):\n"); /*add the course name*/
    clear_buffer();
    while(scanf("%s", temp1)){
        if(checkNameCourse(temp1)==1){
            strcpy(c1.nameofCourse,temp1);
            break;
        }
        printf("Error! Please try again:\n");
    }

    printf("Please enter maximum of students in the course: (between ZERO-MAX_COURSES):\n"); /*max students*/
    clear_buffer();
    num=0;
    while(scanf("%d", &num)){
        if(checkMaxNumofCoursesYear(num)==1){
            c1.maxStudents = num;
            break;
        }
        printf("Error! Please try again:\n");
    }

    printf("Please enter the number of students currently in the course: (between ZERO-THOUSAND):\n"); /*students in course*/
    clear_buffer();
    while(scanf("%d", &st_now)){
        if(checkNumStudentInCourse(st_now)==1){
            c1.currentStudents = st_now;
            break;
        }
        printf("Error! Please try again:\n");
    }

    printf("Please write student id and his grades:\n"); /*students grades array*/
    clear_buffer();
    for(i=0;i<st_now;i++) 
    {
        c1.studentsGrades[i].id_test=getStudentId();
        c1.studentsGrades[i].examA=getGradeExam(); 
        c1.studentsGrades[i].examB=getGradeExam(); 
    }
    return c1;
}

Как видите, функция возвращает c1. (Функция находится в разделе «input.c», и я включил «course.h» ofc)

но компилятор gcc выдает мне эту ошибку:

input.h: 13: 1: ошибка: неизвестное имя типа «Курс»; Вы имели в виду "двойной"? Курс getNewCourse (); ^ ~~~~~

Что не так с моим кодом?

отредактировано: это заголовок input.h:

    #ifndef INPUTS_H_
#define INPUTS_H_
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include "course.h"
#include "student.h"
#include "common.h"
#include "checks.h"

/*inputs courses:*/
int getNumofMaxCourses(); 
Course getNewCourse();
char * getCouseNum();
double getCoursetoAdd();
int getCoursetoDelete();

/*inputs students:*/
int getGradeExam();
int getMaxNumberOfStudets();
Student getNewStudent();
char* getStudentTodelete();
char * getStudentId();

/*inputs common:*/
int getCourseNum();
char* getCourseName();

#endif
...