왜 이렇게 작성해야되는지 설명 해주세요
총알탄
질문 제목 :어째서 구조체를프로토타입 함수 위에다 써야되죠?질문 요약 :구조체를 작성시 프로토타입 함수가 있으면 위에다 써야하는 이유가 궁금합니다.질문 내용 :
제가 구조체를 이용한 데이터베이스프로그램을 작성하는데요 다음과 같이 형태로 쓰면 오류가 많이 나옵니다.void Search_By_Name(std_data info[], char stud_name[], int n);
void Search_By_Major(std_data info, char stu_major, int n);
void Search_By_Studid(std_data info, char stu_id, int n);typedef struct student
{
char name[5];
char major[20];
char stud_id[10];
char grade[1];
} std_data;//학생 정보 구초체를 typedef로 std_data라고 정의 내림그런데 typedef struct student
{
char name[5];
char major[20];
char stud_id[10];
char grade[1];
} std_data;//학생 정보 구초체를 typedef로 std_data라고 정의 내림void Search_By_Name(std_data info[], char stud_name[], int n);
void Search_By_Major(std_data info, char stu_major, int n);
void Search_By_Studid(std_data info, char stu_id, int n);이렇게 작성하면은 에러가 사라집니다.왜 그런지 알려주실분 없으신가요?
-
가론
위에서 차례대로 실행이 되기 때문이죠..별다른 이유는 없어요..
-
튼동
C컴파일러는 정말 멍청해서 순서대로 나오지않으면 모르지요~ 멍청한 컴파일러를 위한 배려?
프로토타입에서 참조한 구조체가 뭔지 모르니까 에러를 냈다 싶은데요~ -
지나
위의 경우에서 Search_By_... 류의 함수들이 std_data 라는 구조체를 알긴 할까요? 구조체는 자기 뒤에 있는데다 함수 자신도 뒤도 돌아보지 않는데 말입니다.
아래의 경우엔 알수 있죠. 구조체가 함수들보다 먼저 등장했으니...