_lsearch_s
Bir değeri doğrusal bir arama gerçekleştirir.Bir sürümü _lsearch açıklandığı gibi güvenlik geliştirmeleri ile CRT'deki Güvenlik Özellikleri.
void *_lsearch_s(
const void *key,
void *base,
unsigned int *num,
size_t size,
int (__cdecl *compare)(void *, const void *, const void *),
void * context
);
Parametreler
key
Aramak için nesne.base
Aranacak dizi tabanı için işaretçi.num
Öğe sayısı.size
Her dizi öğesinin bayt cinsinden boyutu.compare
Karşılaştırma yordamı için işaretçi.İkinci parametre, arama için anahtar bir işaretçidir.Üçüncü parametre anahtarı ile karşılaştırılmak üzere bir dizi öğesine bir işaretçidir.context
Karşılaştırma işlevi erişilen bir nesneye bir işaretçi.
Dönüş Değeri
key Bulunan _lsearch_s dizi öğesine bir işaretçi döndürür base uyan key.key Bulunamazsa, _lsearch_s dizinin sonundaki yeni eklenen öðe için bir işaretçi döndürür.
İşleve geçersiz parametre belirtilmediyse, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre Doğrulama.Yürütme devam, sonra izin veriliyorsa, errno ayarlamak EINVAL işlevini verir ve NULL.Daha fazla bilgi için bkz. errno, _doserrno, _sys_errlist, and _sys_nerr.
Hata koşulları
key |
base |
compare |
num |
size |
errno |
---|---|---|---|---|---|
NULL |
herhangi bir |
herhangi bir |
herhangi bir |
herhangi bir |
EINVAL |
herhangi bir |
NULL |
herhangi bir |
!= 0 |
herhangi bir |
EINVAL |
herhangi bir |
herhangi bir |
herhangi bir |
herhangi bir |
sıfır |
EINVAL |
herhangi bir |
herhangi bir |
NULL |
bir |
herhangi bir |
EINVAL |
Notlar
_lsearch_s İşlevi gerçekleştirir değeri doğrusal arama key bir dizi içinde num öğeleri, her biri width bayt.Aksine bsearch_s, _lsearch_s dizi sıralanmasını gerektirmez.key , Sonra bulunamadı _lsearch_s artırır ve dizi sonuna ekler num.
compare İki dizi öğeleri karşılaştırır ve aralarındaki ilişkiyi belirleyen bir değer döndüren bir kullanıcı tarafından sağlanan yordamı için bir işaretçi bir işlevdir.compare İşlev işaretçisi içerik ilk bağımsız değişken olarak da alır._lsearch_sÇağrı compare işaretçileri için iki dizi öğelerinin her çağrıda geçirerek, arama sırasında bir veya daha çok kez.compareöğeleri karşılaştırmak ve ya da dönmek gerekir sıfır (öğeleri farklı olduğu anlamına gelir) veya 0 (öğeleri aynı olduğu anlamına gelir).
context İşaretçiyi nesnenin bir bölümünü Aranan veri yapısı ise faydalı olabilir ve compare işlevi nesnesinin üyelerini erişim gerekiyor.Örneğin, kod compare işlevi uygun nesne türü ve erişim üyelerine o nesnenin void işaretçi artığını.Ayrıca context işaretçi yapar _lsearch_s daha güvenli veri kullanılabilir hale getirmek için statik değişkenler kullanımıyla ilişkili yeniden kullanılabilirlik hataları önlemek için ek içerik kullanılabilir çünkü compare işlevi.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_lsearch_s |
<search.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.