반응형

콜백 2

[c language] 117. 콜백

이번에는 함수 포인터를 콜백으로 이용하는 간단한 예를 살펴보아요. 정렬 알고리즘은 원소 형식이 무엇인지에 상관없이 대부분 같아요. 하지만 비교하는 것은 차이가 있죠. 만약 번호와 이름을 멤버로 갖는 학생 구조체 배열을 번호순으로 정렬한다면 멤버 번호로 비교해야 할 거예요. 이름순으로 정렬한다면 멤버 이름으로 비교해야겠죠. 이럴 때 비교하는 논리를 전달받아 형식에 관계없이 정렬하는 함수를 구현할 수 있어요. 이 때 비교하는 논리를 전달 받기 위해 함수 포인터를 사용해요. 호출하는 곳에서는 비교 함수를 정의하여 정렬 함수에 이를 입력 인자로 전달해요. 그리고 정렬 함수에서는 전달받은 비교 함수를 이용하여 정렬하는 것죠. 결국 피호출 함수인 정렬 함수에서 호출한 곳에서 정의한 비교 함수를 호출하는 것이므로 콜..

반응형