Initial revision
[official-gcc.git] / libiberty / memcmp.c
blob127ae0c8019d237429add30809d2a4016855e86d
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 unsigned char *s1 = (unsigned char*)str1;
29 register unsigned char *s2 = (unsigned char*)str2;
31 while (count-- > 0)
33 if (*s1++ != *s2++)
34 return s1[-1] < s2[-1] ? -1 : 1;
36 return 0;