구조체를 typedef로 했는데요.

seeker의 이미지

구조체 타입을 정의하기 전에
그 사이즈를 다음처럼 선언했는데
이것이 컴파일이 되네요?

#define EN54070_SHMSIZE sizeof ( en54070_info_t )

typedef struct en54070_info {
  /* Header */
  int intNum; /* strData의 실제 데이터의 배열크기 */
  time_t tm;  /* 공유메모리 내용이 마지막으로 수정된 시간 */
  /* data */
  char data[ 20000 * 10 ][ EN54070_ELSIZE ];
} en54070_info_t;

en54070_info_t 를 정의하기전에 sizeof로 참조한것이
어떻게 에러가 발생안하는지요?

purewell의 이미지

#define은 가장 쉽게 말하면 문자열 치환입니다.

단순히 'EN54070_SHMSIZE'를 'sizeof ( en54070_info_t )'라는

문자열로 치환합니다.

이때 치환되는 때는 "컴파일 이전" 입니다.

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz