CPP_어소_48_함수 포인터

CJB_ny·2022년 6월 27일
0

CPP_AROTHO

목록 보기
46/83
post-thumbnail

Sort함수는 하나인데 여기에 다른 함수들의 주소를 넘겨주어서 다른 정렬로 가변배열을 정리 할 수 있도록 만들어 주도록 하자.

함수의 주소

Sort하는데 &s이 녀석을 &함수 이렇게 전달을 할 수도 있다.

그리고 함수는 이름 자체가 주소로 인정이 되기 때문에 이름만 붙여도 상관없다.

이렇게 가능.

그러면 Sort함수는 인자로 함수의 주소를 받을 수 있게 설계 되어야한다.

인자로 함수의 주소를 받는 방법 ❗

void-1 (Func)-2 void-3
반환타입이 void-1이고, 인자가 없는(void-3) 그런 함수의 주소를(
Func-3)를 받겠다.

이게 함수 포인터 선언 방법이다.

이렇게 함수의 주소를 받을 수 있는 함수 포인터를 선언할 수 있고

따라서

pFunc를 호출을 한다는 것은 pFunc가 담고있는 Test함수의 주소이기 때문에 Test함수를 호출을 한다는 것이다.

대신 선언 당시의 형태와 매칭이 되는 함수만 호출이 가능하다.

BubbleSort 받는 방법

현재 이러니까

인자로 int 포인터 타입을 받고, int를 받는 그런 함수의 주소를 받아야 한다.

어떤 임의의 sort함수를 받는데,

그녀석의 반환 타입이 void이고, 인자로 int*, int를 받는 함수이다.

BullbleSort호출 방법

이렇게 호출을 해주고

실행해서 결과 확인하면 똑같다.

callback기능

누군가 필요할지도 모르는 함수를 다 만들어 놓을 수 없다.

그래서 함수 포인터를 이용하여 애니매이션 기능이 끝나면 사용자가 전달해준 함수를

호출하여 준다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글