_lsearch
값에 대 한 선형 검색을 수행합니다. 발견 되지 않으면 목록 끝에 추가 합니다.보다 안전한 버전의이 함수를 사용할 수 있습니다. 참조 하십시오 _lsearch_s.
void *_lsearch(
const void *key,
void *base,
unsigned int *num,
unsigned int width,
int (__cdecl *compare)(const void *, const void *)
);
매개 변수
key
개체를 검색할 수 있습니다.base
포인터의 배열 검색 합니다.num
요소의 수입니다.width
각 배열 요소의 너비입니다.compare
비교 루틴에 대 한 포인터입니다.첫 번째 매개 변수는 검색에 대 한 키에 대 한 포인터입니다.두 번째 매개 변수는 키와 비교 하 여 배열 요소에 대 한 포인터입니다.
반환 값
키가 있으면 _lsearch 배열의 요소에 대 한 포인터를 반환 base 와 동일한 key.해당 키가 없는 경우 _lsearch 배열의 끝에 새로 추가 된 항목에 대 한 포인터를 반환 합니다.
설명
_lsearch 함수 값에 대 한 선형 검색을 수행 key 배열에 있는 num 의 각 요소를 width 바이트입니다.달리 bsearch, _lsearch 배열을 정렬 하려면 필요 하지 않습니다.경우 key 찾을 수 없습니다 _lsearch 배열 및 간격의 끝에 추가 num.
compare 인수는 배열 요소 두 개를 비교 하 고 서로의 관계를 지정 하는 값을 반환 하는 사용자 제공 루틴에 대 한 포인터입니다._lsearch호출을 compare 일상적인 여러 번 각 호출에서 두 배열 요소에 포인터를 전달 하는 검색 하는 동안.compare요소를 비교 하 고 하나를 반환 해야 0이 아닌 (요소가 다른 수 없음) 또는 0 (요소를 동일한 수 없음).
이 함수의 매개 변수의 유효성을 검사 합니다.경우 compare, key 또는 num 입니다 NULL, 또는 base NULL입니다 및 *num 0이 아닙니다 경우 width 가 0 보다 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실행을 계속 수 있으면 errno 으로 설정 EINVAL 함수를 반환 하 고 NULL.
요구 사항
루틴 |
필수 헤더 |
---|---|
_lsearch |
<search.h> |
더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// crt_lsearch.c
#include <search.h>
#include <string.h>
#include <stdio.h>
int compare( const void *arg1, const void *arg2 );
int main(void)
{
char * wordlist[4] = { "hello", "thanks", "bye" };
// leave room to grow...
int n = 3;
char **result;
char *key = "extra";
int i;
printf( "wordlist before _lsearch:" );
for( i=0; i<n; ++i ) printf( " %s", wordlist[i] );
printf( "\n" );
result = (char **)_lsearch( &key, wordlist,
&n, sizeof(char *), compare );
printf( "wordlist after _lsearch:" );
for( i=0; i<n; ++i ) printf( " %s", wordlist[i] );
printf( "\n" );
}
int compare(const void *arg1, const void *arg2 )
{
return( _stricmp( * (char**)arg1, * (char**)arg2 ) );
}
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.