typedef 질문입니다.
글쓴이: nayana / 작성시간: 금, 2004/11/19 - 4:59오후
typedef void (*FPTR_Init)( void ); FPTR_Init a;
이 코드에서 a는 리턴형이 void형이고 argument를 전혀받지
않는 함수를 가리키는 함수포인터로 알고 있습니다.
typedef void VOID;
이코드에서는 void 를 VOID로 정의한것인데...
이것에 문법에 따르면 void를 (*FPTR_Init)( void )로 정의가 되는것이
아닌가요?
예를 들면 void aaa();함수가 있다면...
이것은 VOID aaa(); 함수와도 같고 (*FPTR_Init)( void ) aaa() 함수가 같은것이 되어야 합니다.
하지만 이건 분영히 잘못됬습니다.
아니면 typedef 문법이라고 생각하고 그냥 써야하나요...
아니면 구체적인 원리가 있나요?
Forums:
typedef와 변수의 선언은 같은 규칙을 따릅니다. 그냥 앞에서부터 읽
typedef와 변수의 선언은 같은 규칙을 따릅니다. 그냥 앞에서부터 읽어나가는
식은 아니구요. 다음을 참조하세요.
http://groups.google.co.kr/groups?&selm=3DD36FDD.2D5D253%40bawi.org&rnum=1
[quote="nayana"]이것에 문법에 따르면 void를 (*FPTR
typedef void (*FPTR_Init)(void); 는 FPTR_Init을 void (*)(void), 즉 인자도 리턴 값도 없는 함수로의 포인터로 정의하는 것입니다.
네 그거는 저도 알고 있습니다.처음에 언급하였습니다. 제가 하고 싶은
네 그거는 저도 알고 있습니다.
처음에 언급하였습니다. 제가 하고 싶은 말은 문법이라고
생각하고...지나가야 하나요? 이것 입니다.
[quote="Anonymous"]네 그거는 저도 알고 있습니다.처음
반대로 생각하고 계시지 않나 싶습니다. typedef void (*FPTR_Init)(void); 가 void를 정의한다고 하시지 않았나요? 저는 FPTR_Init를 정의한다고 썼는데.
typedef void (*FPTR_Init)(void); 는 FPTR_Init를 정의하고
typedef void VOID; 는 VOID를 정의하므로
void를 두 번 정의하는 것이 아닙니다.
[quote]typedef void (*FPTR_Init)( voi
처음에 언급하였습니다.^^;
Re: typedef 질문입니다.
원리라고 하기에는 좀 거창하고 그냥 규칙이라고 생각하세요. 규칙이 바로 문법이지요.
그런데 그냥 지나가지는 마시고 이 기회에 문법을 익혀두는 게 좋겠죠.
그리 어려운 것도 아니고 언젠가는 필요할 테니까요.
댓글 달기