함수 포인터 쓰는 이유?? 가장 쉬운 설명
- 프로그래밍/C/C++
- 2018. 7. 17.
함수 포인터 쓰는 이유?? 가장 쉬운 설명
이번에는 함수 포인터 쓰는 이유를 알아보겠다.
포인터를 배울때도 이게 왜 포인터가 어떻게 쓰이는지? 왜 쓰이는지 잘 몰랐다.
그 이유에 대해서는 < C언어 포인터 쓰는 이유?? > 여기에서 알아보기로 하고
이 글에서는 함수 포인터 쓰는 이유에 대해서 알아보자.
어느 한 질문이 있었다.
Q. 포인터를 통해 인자를 전달하는 것보다 직접적으로 함수에 전달하는 것이 효율적인거 같은데 함수 포인터는 왜 배우는 건가요?
A. 함수 포인터는 일므을 모르는 함수를 호출할 때 사용합니다. 주로 "프로그램을 제작하는 그 당시에는 존재하지 않는 함수"를 호출할때 이용하죠.
예를 들면 프로그램에 플로그인 기능이 필요한 경우, 플러그인은 아직 존재하지 않고 나중에 추가 될 수 있기 때문에 프로그램에서는 함수 포인터로 플러그인 함수에 접근합니다.
A. 아래의 코드를 비교해보세요.
< 함수 포인터를 사용하지 않는 경우 >
1 2 3 4 5 6 7 8 9 10 11 12 | switch (program_count) { case 0: Zero(); break; case 1: One(); break; case 2: Two(); break; case 3: Three(); break; case 4: Four(); break; case 5: Five(); break; case 6: Six(); break; case 7: Seven(); break; case 8: Eight(); break; case 9: Nine(); break; } | cs |
< 함수 포인터를 사용하는 경우 >
1 2 | void (*fp[])() = { Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine }; fp[program_count](); | cs |
이렇게 간단하게 사용 할 수 있습니다.
이렇게 함수 포인터 쓰는 이유에 대해서 알아봤다.