summaryrefslogtreecommitdiff
path: root/lib/memcmp.c
blob: 339b5818e70bb24122515bfd1facdb8068503cc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* memcmp.c -- compare memory.
   Return:
   <0 if S1 < S2,
   0 if strings are identical,
   >0 if S1 > S2.
   Stops looking after N characters.  Doesn't stop at nulls.
   In the public domain.
   By David MacKenzie <djm@gnu.ai.mit.edu>. */

#include <sys/types.h>

int
#if __STDC__
memcmp (void const *v1, void const *v2, size_t n)
{
  register char *s1 = (char *) v1, *s2 = (char *) v2;
#else
memcmp (s1, s2, n)
     register char *s1, *s2;
     register unsigned n;
{
#endif
  register int diff;

  while (n--)
    {
      diff = *s1++ - *s2++;
      if (diff)
	return diff;
    }
  return 0;
}