함수 원형 해석
글쓴이: BSK / 작성시간: 일, 2006/02/12 - 2:58오후
void (*signal(int signum, void (*func)(int)))(int);
풀이해 보겠습니다. 틀린점 있으면 지적해 주시면 감사하겠습니다.
*signal(int signum, void (*func)(int))
일단 인자만 얘기 하겠습니다. int형, void 함수포인트
void (*signal(int signum, void (*func)(int)))(int)
void (*signal()) 함수포인트 (int) 인자는 int
전체 리턴값은 void형이니까 없음.
대충 이렇게 이해했는데 맞나요!
Forums:
identifier이 signal이고, *보단 함수의 () 쪽이 우선순위
identifier이 signal이고, *보단 함수의 () 쪽이 우선순위가 높으니까, signal은 함수 포인터가 아니고 함수인거 같군요.
signal 자체는 int signum과 void (*func)(int) 를 매개변수로 받고, void (*func)(int) 와 같은 형식의 함수에 대한 포인터를 리턴하는 함수가 되겠군요.
[quote="Anonymous"]signal 자체는 int sign
답변 감사합니다. 여기서 void (*func)(int) - 이부분을 void *라고 해석해야 될까요. 아니면 실행제어만 main()으로 가는 void로 해석해야 될까요?
/* ....맑은 정신, 건강한 육체, 넓은 가슴으로 세상과 타협하자. */
선언에서는 변수 혹은 함수이름 찾는 게 까다로워서 그렇지, 그 다음부터는
선언에서는 변수 혹은 함수이름 찾는 게 까다로워서 그렇지, 그 다음부터는 그냥 연산자 결합순서대로 해석하면 됩니다.
void (*func)(int)
func와 제일먼저 결합하는게 * 니까 pointer to ... 가 되겠고, 계속 써내려가면 pointer to function(int) returning void 가 되겠군요. int를 함수 인자로 받고, void형을 리턴하는(리턴값이 없는) 함수에 대한 포인터가 되겠군요.
답변 감사합니다.
답변 감사합니다.
/* ....맑은 정신, 건강한 육체, 넓은 가슴으로 세상과 타협하자. */
댓글 달기