2001-05-28 Philip Blundell <philb@gnu.org>
[binutils.git] / libiberty / memcmp.c
blob0fd21cad11edcee49c403dbac179ed7efccd56cf
1 /* memcmp -- compare two memory regions.
2 This function is in the public domain. */
4 /*
5 NAME
6 memcmp -- compare two memory regions
8 SYNOPSIS
9 int memcmp (const void *from, const void *to, size_t count)
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.
17 #include <ansidecl.h>
18 #ifdef __STDC__
19 #include <stddef.h>
20 #else
21 #define size_t unsigned long
22 #endif
24 int
25 DEFUN(memcmp, (str1, str2, count),
26 const PTR str1 AND const PTR str2 AND size_t count)
28 register const unsigned char *s1 = (const unsigned char*)str1;
29 register const unsigned char *s2 = (const unsigned char*)str2;
31 while (count-- > 0)
33 if (*s1++ != *s2++)
34 return s1[-1] < s2[-1] ? -1 : 1;
36 return 0;