header file 참조 구조?
글쓴이: hoya128 / 작성시간: 수, 2013/08/28 - 5:48오후
헤더 파일에서 선언된 union과 struct가 서로 꼬였는데.. 어떻게 해결을 해야할지 모르겠습니다.
에서는 typedef union _uA { uB ub; ... } uA;
typedef struct _tA { ... } tA;
처럼 B.h를 이용하고,
에서는 typedef union _uB { ... } uB;
에서는 tA ta; 처럼 A.h를 이용합니다.
에서 #include "A.h" #include "B.h"
와 같이 사용을 하려고 하는데,
B.h에 있는 union을 A가 이용해서 안되네요...
구조를 약간 깨더라도
#include "B.h"
#include "A.h"
로 하려고 해도
A.h에 있는 union을 B가 이용해서 안되구요...
이거때메 헤더파일을 더 쪼개면 가독성이나 구조적 문제로 꺼려지는데..
"다른 헤더파일에 선언된 union이나 struct를 강제로 가져다 쓰는 문법을 알고 싶습니다."
extern 이용해서 이리저리 해봐도 안되네요 ㅠ_ ㅠ;;
Forums:
어? 글이 깨지네요;;
꺽쇠 써서 그런가...
간략하게 다시 쓰면,
- A.h -
typedef union _uA { uB ub; } uA;
typedef struct _tA { ... } tA;
- B.h -
typedef union _uB { ... } uB;
extern tA ta;
- main.c -
#include "A.h"
#include "B.h"
위와 같은 내용입니다.
B.h 의 내용을 A.h 에서 가져다 쓰려면 A.h
B.h 의 내용을 A.h 에서 가져다 쓰려면 A.h 에서 include 해 주세요.
그리고 각 헤더를 #ifdef 으로 보호해 주면 됩니다.
#ifdef __A_H__
#define __A_H__
...
...
...
#endif
#ifdef __B_H__
#define __B_H__
...
...
...
#endif
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
댓글 달기