home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / libg++-2.7.1-base.tgz / libg++-2.7.1-src.tar / fsf / libg++ / libiberty / memcmp.c < prev    next >
C/C++ Source or Header  |  1995-10-19  |  787b  |  39 lines

  1. /* memcmp -- compare two memory regions.
  2.    This function is in the public domain.  */
  3.  
  4. /*
  5. NAME
  6.     memcmp -- compare two memory regions
  7.  
  8. SYNOPSIS
  9.     int memcmp (const void *from, const void *to, size_t count)
  10.  
  11. DESCRIPTION
  12.     Compare two memory regions and return less than,
  13.     equal to, or greater than zero, according to lexicographical
  14.     ordering of the compared regions.
  15. */
  16.  
  17. #include <ansidecl.h>
  18. #ifdef __STDC__
  19. #include <stddef.h>
  20. #else
  21. #define size_t unsigned long
  22. #endif
  23.  
  24. int
  25. DEFUN(memcmp, (str1, str2, count),
  26.       const PTR str1 AND const PTR str2 AND size_t count)
  27. {
  28.   register unsigned char *s1 = (unsigned char*)str1;
  29.   register unsigned char *s2 = (unsigned char*)str2;
  30.  
  31.   while (count-- > 0)
  32.     {
  33.       if (*s1++ != *s2++)
  34.       return s1[-1] < s2[-1] ? -1 : 1;
  35.     }
  36.   return 0;
  37. }
  38.  
  39.