2017-04-04 6 views
0

프로그래밍 책에서 함수 포인터를 사용하는 법을 배우고 있습니다. 거기 bsearch()와 qsort()의 사용을 발견했습니다. 두 함수에는 함수 포인터 cmpfunc의 매개 변수가 있습니다.cmpfunc in bsearch() in c

qsort()에서 두 요소를 비교하려면 cmpfunc가 필요합니다.

왜 bsearch()에 cmpfunc가 필요하고 어떻게 작동하는지 이해할 수 없습니다.

도와주세요. 미리 감사드립니다.

+0

나는 그저 무슨 뜻인지 추측 할 수 있지만 일반적으로 정렬 함수에 비교 함수를 전달하여 사용자가 자신의 정렬 방식을 선택할 수 있도록합니다. 즉, 사용자가 요소를 오름차순 또는 내림차순으로 정렬하거나 그들의 가치 모드 5, 또는 정말로 당신이 좋아하는 무엇이든. –

답변

2

this 설명서에 따르면 bsearch 비교 함수는 qsort 함수와 비슷한 것으로 배열의 요소에 대해 원하는 후보를 계산하는 데 필요합니다. 원하는 요소가 포함되어 있거나 모든 반복에서 검색 공간의 절반을 버리면 검색을 종료해야합니다. 역할은 qsort 기능과 동일합니다.

+0

고맙습니다. @ 코 도르 – ishtiaq11

1

bsearch에서 비교 함수 cmpfunc이 호출되어 검사중인 요소가 실제로 키와 일치하는지 여부를 결정하고 일치하지 않으면 키가 목록의 이전 또는 이후인지 여부를 결정합니다.

+0

고맙습니다 @ 로스 프레 서. – ishtiaq11