카테고리: 프로그래밍 언어

전문가) 함수 포인터를 이용하면 일부 알고리즘을 입력 인자로 받아서 이를 호출하여 기능을 구현할 수 있어요. 학생) 그럼 호출 방향이 반대네요. 이것도 콜백이겠네요.

이번에는 함수 포인터를 콜백으로 이용하는 간단한 예를 살펴보아요.

정렬 알고리즘은 원소 형식이 무엇인지에 상관없이 대부분 같아요.
하지만 비교하는 것은 차이가 있죠.
만약 번호와 이름을 멤버로 갖는 학생 구조체 배열을 번호순으로 정렬한다면 멤버 번호로 비교해야 할 거예요.
이름순으로 정렬한다면 멤버 이름으로 비교해야겠죠.

이럴 때 비교하는 논리를 전달받아 형식에 관계없이 정렬하는 함수를 구현할 수 있어요.
이 때 비교하는 논리를 전달 받기 위해 함수 포인터를 사용해요.
호출하는 곳에서는 비교 함수를 정의하여 정렬 함수에 이를 입력 인자로 전달해요.
그리고 정렬 함수에서는 전달받은 비교 함수를 이용하여 정렬하는 것죠.
결국 피호출 함수인 정렬 함수에서 호출한 곳에서 정의한 비교 함수를 호출하는 것이므로 콜백이라 할 수 있어요.

◈ 콜백을 이용한 정렬 함수 구현 및 사용 예

이 외에도 많은 곳에서 함수 포인터를 활용할 수 있어요.
여기서는 이 정도로 함수 포인터를 소개하고 마무리를 할게요.

결국 프로그래밍 실력은 문제 해결을 위한 자신의 고민과 스트레스 속에서 조금씩 성장하는 것 같아요.
작은 문제라도 자신이 직접 작성하는 것은 쉬운 일이 아니죠.
그리고 작은 문제라도 자신이 직접 해결하면 무언가 뿌듯함을 느낄 수 있을 거예요.
여러분 모두 훌륭한 개발자가 되길 기원할게요.
그 동안 수고했어요.


[C언어 무료 동영상 강의] 117. 콜백