[GPG 1 글 1.5] GPG1권의 103페이지에 궁금한 것이 있어서요~

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

울트라초보씨

GPG1권의 103페이지에 궁금한 것이 있어서요~

Post by 울트라초보씨 »

103페이지에 코드가 하나 나오잖아요
거기에 위에서 4~5번째 줄에

typedef void (*Proc)( void );
라는 줄이 있던데

이문장의 의미를 정확하게 모르겠어요
그리고 Proc이라는 데이터 형은
원래 있는건가요~ 아니면
저자가 새로 정의한 데이터 형인가요~?
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Post by 류광 »

C++ 구문 중 가장 애매하다고 할 수 있는 구문인데요... 분해를 하자면

일단 typedef의 대상은 Proc입니다. 그 나머지는 Proc이 어떤 형인지를 정의하는 것이구요. typedef와 Proc을 빼면

void (*)(void);

전체적으로는 하나의 함수 포인터입니다. 처음의 void는 함수의 반환값, 두 번째의 (*)는 이것이 함수 포인터임을 의미하고 그 다음의 (void)는 함수의 매개변수 목록입니다...


void 함수이름(void)
형태의 함수를 가리키는 함수 포인터 형식에 Proc이라는 이름을 붙이는 것이죠..

일반 형식의 경우 형식이 나오고 이름이 나오는 형태인데(typedef unsigned int UINT; 등) 함수 포인터는 좀 다르죠...

이걸 왜

typedef void (*) (void) Proc;

라고 하지 않느냐는 좀 어려운 주제일 것입니다... 어디선가 왜 이렇게 되었는지에 대한 토론을 본 적이 있는데 기억이 안 나네요.
강보람
Posts: 7
Joined: 2003-01-29 16:35
Location: 성결대학교 컴퓨터전공

감사합니당~

Post by 강보람 »

한번에 확 느낌이 오네요~
감사합니당~
울트라 초보입니다-_-a;;
Post Reply