memcmp, wmemcmp

İki arabellekleri karakter karşılaştırır.

int memcmp( 
   const void *buf1, 
   const void *buf2, 
   size_t count 
); 
int wmemcmp( 
   const wchar_t * buf1, 
   const wchar_t * buf2, 
   size_t count 
);

Parametreler

  • buf1
    İlk arabellek.

  • buf2
    İkinci bir arabellek.

  • count
    Karşılaştırmak için karakter sayısı. (Bayt karşılaştırır memcmp, geniş karakterler için wmemcmp).

Dönüş Değeri

Dönüş değeri, arabellek arasındaki ilişkiyi gösterir.

Dönüş değeri

İlk ilişki count buf1 ve buf2 karakterleri

< 0

buf1, buf2 parametresinden küçüktür

0

buf1buf2 ile aynı

> 0

buf1, buf2 parametresinden büyüktür.

Notlar

İlk karşılaştırır count karakter buf1 ve buf2 ve aralarındaki ilişkiyi gösteren bir değeri döndürür.İşareti sıfır olmayan değer oturum arabellek değerleri ilk farklı çifti arasındaki farkın dönüş.Değerler olarak yorumlandığını unsigned char için memcmpve wchar_t için wmemcmp.

Gereksinimler

Yordam

Gerekli başlık

memcmp

<Memory.h> veya <string.h>

wmemcmp

<wchar.h>

Ek uyumluluk bilgileri için bkz. Uyumluluk.

Kitaplıklar

Tüm sürümlerini C çalışma zamanı kitaplığı.

Örnek

// crt_memcmp.c
/* This program uses memcmp to compare
 * the strings named first and second. If the first
 * 19 bytes of the strings are equal, the program
 * considers the strings to be equal.
 */

#include <string.h>
#include <stdio.h>

int main( void )
{
   char first[]  = "12345678901234567890";
   char second[] = "12345678901234567891";
   int int_arr1[] = {1,2,3,4};
   int int_arr2[] = {1,2,3,4};
   int result;

   printf( "Compare '%.19s' to '%.19s':\n", first, second );
   result = memcmp( first, second, 19 );
   if( result < 0 )
      printf( "First is less than second.\n" );
   else if( result == 0 )
      printf( "First is equal to second.\n" );
   else
      printf( "First is greater than second.\n" );

   printf( "Compare '%d,%d' to '%d,%d':\n", int_arr1[0], int_arr1[1], int_arr2[0], int_arr2[1]);
   result = memcmp( int_arr1, int_arr2, sizeof(int) * 2 );
   if( result < 0 )
      printf( "int_arr1 is less than int_arr2.\n" );
   else if( result == 0 )
      printf( "int_arr1 is equal to int_arr2.\n" );
   else 
      printf( "int_arr1 is greater than int_arr2.\n" );
}

Çıktı

Compare '1234567890123456789' to '1234567890123456789':
First is equal to second.
Compare '1,2' to '1,2':
int_arr1 is equal to int_arr2.

.NET Framework Eşdeğeri

Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.

Ayrıca bkz.

Başvuru

Ara Bellek Düzenlemesi

_memccpy

memchr, wmemchr

memcpy, wmemcpy

memset, wmemset

strcmp, wcscmp, _mbscmp

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l