다음과 같이 컴파일에 문제가 있습니다. 헤더 파일 abc.h
은 abc.c
에 포함됩니다.왜이 충돌 유형 선언입니까?
abc.c:23:7: error: conflicting types for ‘foo’
In file included from abc.c:18:0:
abc.h:64:15: note: previous declaration of ‘foo’ was here
: 헤더 파일에서
, 난 내가 GCC에서 컴파일 오류가 발생하지만이char *foo[] = { ".mp3", ".mp4" };
이 소스 파일에서이
extern char **foo;
이 이 오류가 발생하는 이유는 무엇입니까?
@KingWeeWee 함수 선언에서 다르게 작동합니다. – cnicutar
char * p는 char [] p와 같습니다. 감사합니다. – KingWeeWee
@KingWeeWee : 당신은 착각했습니다, 그들은 같은 타입이 아닙니다. 컴파일러가 "지정되지 않은 크기의 X 배열"유형의 외부 심볼을 볼 때 실제로 링크 할 대상은 첫 번째 요소와 동일한 위치에서 시작하는 배열의 주소입니다. 그럼에도 불구하고 유형은 첫 번째 요소에 대한 포인터의 유형과 다릅니다. –