if 0로 묶여 있는 부분은 보통의 함수포인터를 부르는 방식이다.
하지만 이는 복잡해 보이고 혼란을 줄 수 있는 모양일 수 있다. 따라서 코드를 깔끔하게 보이기 위해 else로 묶여있는 부분을 보면 typedef를 통한 함수포인터 사용을 볼 수 있다.
typedef에 대한 부분이 혼란스러우면 아래와 같이 이해하면 좋다(출처:https://kldp.org/node/119822)
typedef를 빼면 변수 선언 붙이면 타입 선언이라고 이해하시면 편합니다.
unsigned int u32; // u32는 unsigned int 타입의 변수
typedef unsigned int u32; // u32는 unsigned int 타입int (*func)(int, int); // func는 (int, int)를 받고 int를 리턴하는 함수에 대한 포인터 타입의 변수
typedef int (*func)(int, int); // func는 (int, int)를 받고 int를 리턴하는 함수에 대한 포인터 타입
'프로그래밍 > C' 카테고리의 다른 글
malloc 를 캐스팅 하지 말자. (0) | 2014.05.29 |
---|---|
strtok에 NULL을 전달하는 이유 (0) | 2014.05.29 |
ternary operator (0) | 2014.04.13 |
[visual studio] 에러 C2143 로컬변수 선언 위치 (0) | 2013.11.24 |
c precedence table (0) | 2013.11.23 |