Mercurial > hg > CbC > CbC_gcc
annotate libiberty/memcmp.c @ 109:78d3881f2882
add CbC-example/rectype
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 14 Jun 2012 20:43:12 +0900 |
parents | f6334be47118 |
children |
rev | line source |
---|---|
0 | 1 /* memcmp -- compare two memory regions. |
2 This function is in the public domain. */ | |
3 | |
4 /* | |
5 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
6 @deftypefn Supplemental int memcmp (const void *@var{x}, const void *@var{y}, @ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
7 size_t @var{count}) |
0 | 8 |
9 Compares the first @var{count} bytes of two areas of memory. Returns | |
10 zero if they are the same, a value less than zero if @var{x} is | |
11 lexically less than @var{y}, or a value greater than zero if @var{x} | |
12 is lexically greater than @var{y}. Note that lexical order is determined | |
13 as if comparing unsigned char arrays. | |
14 | |
15 @end deftypefn | |
16 | |
17 */ | |
18 | |
19 #include <ansidecl.h> | |
20 #include <stddef.h> | |
21 | |
22 int | |
23 memcmp (const PTR str1, const PTR str2, size_t count) | |
24 { | |
25 register const unsigned char *s1 = (const unsigned char*)str1; | |
26 register const unsigned char *s2 = (const unsigned char*)str2; | |
27 | |
28 while (count-- > 0) | |
29 { | |
30 if (*s1++ != *s2++) | |
31 return s1[-1] < s2[-1] ? -1 : 1; | |
32 } | |
33 return 0; | |
34 } | |
35 |