]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - libiberty/memcmp.c
19990502 sourceware import
[thirdparty/binutils-gdb.git] / libiberty / memcmp.c
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