extern int f(struct x *p);``struct x introduced in prototype scope''라는 이상한 경고를 발생시킵니다.
함수 prototype 앞에 structure 선언을 두어 이 문제를 해결할 수 있습니다. (보통, prototype과 structure 선언은 같은 헤더 파일에 존재하며, 이렇기 때문에 한쪽이 다른 한쪽을 참조할 수 있습니다.) 만약 prototype에 아직 선언되지 않은 structure를 꼭 쓸 필요가 있다면, prototype 앞에 다음과 같이 써 줍니다:
struct x;아무것도 아닌 것 같은 이 선언은 struct x 이렇게 하면, 이 구조체의 (incomplete) 선언이 파일 스코프를 가지게 되어, 이후에 나올 선언에서 struct x를 사용할 때, 같은 struct x를 가리키도록 할 수 있습니다.
'Computer > 프로그래밍 일반' 카테고리의 다른 글
clock_gettime() (0) | 2008.06.17 |
---|---|
[스크랩] [ANSI C] 3. 데이타의 형(data`s type) (0) | 2007.12.06 |