2014-09-29 3 views
-1

나는 수업을위한 프로젝트를하고 있으며, 프로그램을 여러 부분으로 나누는 데 도움이 필요하다. 선생님은 어떤 파일이 무엇을 할 것인지를 묻는 메시지를 보여 주었지만 헤더 파일을 작성하는 방법을 알려주지 않았습니다. 온라인에서 배운 것을 토대로 각 .c 파일의 함수 프로토 타입을 자체 .h 파일에 넣고 .c 파일에 "header.h"를 포함 시켰습니다. 그러나, 나는 점점 오전 컴파일 오류는C 파일을 여러 파일로 나누는 방법

course1.c:20:3: warning: implicit declaration of function ‘initialize’ [-Wimplicit-function-declaration] 
    initialize(courses, subjects, CRN); 
^
vector1.c:14:6: error: conflicting types for ‘resize’ 
void resize(char ***courses, char***subjects, int **CRN) { 
    ^
In file included from vector1.c:2:0: 
vector.h:11:6: note: previous declaration of ‘resize’ was here 
void resize(char ***subjects, char ***courses, int **CRNs, int *size); 
    ^
vector1.c:39:6: error: conflicting types for ‘deallocate’ 
void deallocate(char **courses, char**subjects, int *CRN) { 
    ^
In file included from vector1.c:2:0: 
vector.h:12:6: note: previous declaration of ‘deallocate’ was here 
void deallocate(char **subjects, char **courses, int *CRNs, int size); 

으로 나는 .o 인 파일로 개별적으로 컴파일하고 그들이 잘 작동하기 때문에 내 파일이 올바른 구문이 꽤 확신합니다. 다른 사람이 프로그램을 별도의 파일로 분리하는 방법을 알려주십시오. 나는 분명히 잘못하고 있다고 생각한다. 컴파일러가 제공하는 한 가지 오류는 내가 포함 된 헤더 파일에 함수가 명확하게 정의되어있을 때 함수가 정의되어 있지 않다는 것입니다.

+0

코드 요소를 강조 표시 한 후 페이지 상단의 ** {} ** 버튼을 사용하여 서식을 지정하십시오. 현재 읽기가 쉽지 않으므로 읽기 쉽도록 도와주십시오. – jbutler483

+1

컴파일 오류를 읽으면 충돌하는 함수 감속이 있음을 알 수 있습니다. 'resize'와'deallocate' 함수는'vector.h'와'vector1.c'에서 다르게 정의됩니다. 'initialize' 함수는 경고를 정의하기 전에 함수를 호출 한 것을 의미합니다. 컴파일 오류가 아니라 경고입니다. –

답변

1
course1.c:20:3: warning: implicit declaration of function ‘initialize’ [-Wimplicit-  function-declaration] 
    initialize(courses, subjects, CRN); 

이것은 당신이 지정하지 않은 경우, 컴파일러는 int을 반환로 취급 할 것이다 당신이 오래된 C 스타일에서

int initialize(courses, subjects, CRN); 

또는

void initialize(courses, subjects, CRN); 

로 선언해야합니다 것을 의미한다.

vector1.c:14:6: error: conflicting types for ‘resize’ 
void resize(char ***courses, char***subjects, int **CRN) { 
^
In file included from vector1.c:2:0: 
vector.h:11:6: note: previous declaration of ‘resize’ was here 
void resize(char ***subjects, char ***courses, int **CRNs, int *size); 
^

이것은 당신이 다른 위치에 두 번 기능 resize을 정의하고 프로토 타입이 (가 인수 서로 다른 번호가) 다른 의미합니다. 이 기능은 deallocate과 동일합니다.

+0

안녕하세요 존, 포함 된 헤더 파일에 초기화 선언을 추가했습니다. –

+0

'initialize' 함수를 선언 한 행을 보여 주시겠습니까? –

관련 문제