_lsearch_s
Wykonuje liniowej wyszukiwanie wartości.Wersja z _lsearch z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.
void *_lsearch_s(
const void *key,
void *base,
unsigned int *num,
size_t size,
int (__cdecl *compare)(void *, const void *, const void *),
void * context
);
Parametry
key
Obiekt do wyszukiwania.base
Wskaźnik do podstawy tablicy, które mają być przeszukiwane.num
Liczba elementów.size
Rozmiar każdego elementu tablicy, w bajtach.compare
Wskaźnik do rutynowych porównania.Drugi parametr jest wskaźnik do klucza w celu wyszukiwania.Trzeci parametr jest wskaźnik do elementu tablicy, który należy porównać z kluczem.context
Wskaźnik do obiektu, który może być dostępny w funkcji porównania.
Wartość zwracana
Jeśli key zostanie znaleziony, _lsearch_s zwraca wskaźnik do elementu tablicy w base , które odpowiadają key.Jeśli key nie zostanie znaleziony, _lsearch_s zwraca wskaźnik do nowo dodany element na końcu tablicy.
Jeśli do funkcji przekazano nieprawidłowe parametry, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, a następnie errno jest ustawiona na EINVAL i funkcja zwraca NULL.Aby uzyskać więcej informacji, zobacz errno, _doserrno, _sys_errlist i _sys_nerr.
Warunki błędów
key |
base |
compare |
num |
size |
errno |
---|---|---|---|---|---|
NULL |
wszelkie |
wszelkie |
wszelkie |
wszelkie |
EINVAL |
wszelkie |
NULL |
wszelkie |
!= 0 |
wszelkie |
EINVAL |
wszelkie |
wszelkie |
wszelkie |
wszelkie |
zero |
EINVAL |
wszelkie |
wszelkie |
NULL |
an |
wszelkie |
EINVAL |
Uwagi
_lsearch_s Funkcja wykonuje liniowej wyszukiwania dla wartości key w tablicy num elementów, każdy z width bajtów.W odróżnieniu od bsearch_s, _lsearch_s nie wymaga tablicy, które mają być sortowane.Jeśli key nie zostanie znaleziony, następnie _lsearch_s dodaje go do końca tablicy i przyrosty num.
compare Funkcja jest wskaźnik do rutynowych dostarczone przez użytkownika, który porównuje dwa elementy tablicy i zwraca wartość, określając ich relacji.compare Funkcja przyjmuje również wskaźnik do kontekstu jako pierwszy argument._lsearch_swywołania compare jeden lub więcej razy podczas wyszukiwania, przekazując wskaźniki do dwóch elementów tablicy dla każdego wywołania.comparenależy porównać elementy, a następnie powróć albo różną od zera (to znaczy elementy są różne) lub 0 (to znaczy elementy są identyczne).
context Wskaźnik może być przydatne, jeśli struktura danych wyszukiwany jest częścią obiektu i compare funkcja musi mieć dostęp członków tego obiektu.Na przykład kod w compare funkcji można rzutować wskaźnik void do odpowiedniego obiektu typu i access członków tego obiektu.Dodanie context sprawia, że wskaźnik _lsearch_s bardziej bezpieczna, ponieważ kontekst dodatkowe można uniknąć błędów chronometrażu, związanych z używaniem zmiennych statycznych do udostępnienia danych compare funkcji.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_lsearch_s |
<search.h> |
Informacji dotyczących zgodności, zobacz Zgodność we wprowadzeniu.
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Platforma wywołać przykłady.