함수 포인터에 대해서..
글쓴이: hogi2271 / 작성시간: 금, 2010/05/14 - 4:56오후
linux 커널 소스를 보니 다음과 같은 typedef가 나오더군요.
typedef long syscall_handler_t(void);
사용은 (syscall_handler_t *)(new_syscall)(); 이런식으로 형변환하더군요.
보통 함수 포인터 사용하면 다음과 같이
typedef long (*syscall_handler_t)(void);
사용은 (syscall_handler_t)(new_syscall)(); 이랗게 사용하여왔는데..
후자는 확실히 함수 포인터라는 것을 인지 하겠습니다.
전자에서 (syscall_handler_t)(new_syscall)();
이건 어떤의미로 받아 드려야되는걸까요??
제가 뭔가 오류를 범하고 있어 제대로 생각을 못하고 있는걸까요..
Forums:
이렇게 생각하시면
typedef int INT;
int x = 10;
INT *PTR = &x;
*(INT *)PTR <== 10
이것과
typedef int* PINT;
int x = 10;
PINT PTR = &x;
*(PINT)PTR <== 10
같다고 보시면.....
댓글 달기