typedef로 이미 선언이 되었는지 확인하는 방법이 있나요?
글쓴이: superkkt / 작성시간: 월, 2006/01/23 - 10:54오전
#define ABC 1234 #ifndef ABC #define ABC 1234 #endif
이게 typedef에도 똑같이 적용될줄 알았는데 안되는군요..
typedef unsigned char uint8_t #ifndef uint8_t typedef unsigned char uint8_t #endif
컴파일하니 이미 선언되었는데 다시 선언한다고 경고가 나오네요.. typedef로 선언된 내용은 저런식으로 확인할 수 없는건가요?
Forums:
안타깝게도 typedef name이 이미 정의되어 있는가 여부를 판단할
안타깝게도 typedef name이 이미 정의되어 있는가 여부를 판단할 방법은 존재하지 않습니다.
보통 open source software들은 configure script에서 그 타입의 변수를 선언한 간단한 .c 파일을 컴파일해보고 에러 여부에 따라서 특정 매크로를 정의해 둡니다. 예를 들면 이런식입니다.
uint64_t가 정의되어 있는지 여부를 결정하고 여기에 따라 매크로 HAVE_UINT64_T를 정의합니다. 비슷한 형태로 HAVE_* 꼴의 매크로를 정의해서 쓰기도 합니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기