typedef를 이용한 함수포인터 관련 질문
조회수 954회
안녕하세요.
typedef를 이용한 함수포인터에 대해서 공부할 수 있는데요.
사용 예제를 공부하다보니깐 아래와 같은 소스가 있는데요.
궁금한 부분이, abc 함수의 반환형 자료형은 무엇인가요?
그리고 return (test)NULL; 이 부분은 왜 이렇게 쓰는건가요?
typedef int (*test)(int, char **);
test abc(char *argv)
{
return (test)NULL;
}
int main(int argc, char **argv)
{
test b;
b = abc(argv[1]);
return 0;
}
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
abc()
의 반환 형은 함수 포인터 입니다. 좀더 자세히 말하면 반환 형이 int이고 파라미터로 int 와 char**를 갖는 함수의 주소를 반환합니다.return (test)NULL;
는return NULL;
와 동일한 의미 입니다. 캐스팅을 안하나 하나 동일하게 동작합니다.작성하신 분이
NULL
을 함수 주소로 사용하면 컴파일 오류가 발생할 거라 생각하고 강제 캐스팅을 시도한것 같습니다.
댓글 입력