memcmp.c
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /* 
  2.  * memcmp.c --
  3.  *
  4.  * Source code for the "memcmp" library routine.
  5.  *
  6.  * Copyright (c) 1998 Sun Microsystems, Inc.
  7.  *
  8.  * See the file "license.terms" for information on usage and redistribution
  9.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  10.  *
  11.  * SCCS: @(#) memcmp.c 1.2 98/01/19 10:48:58
  12.  */
  13. #include "tcl.h"
  14. #include "tclPort.h"
  15. /*
  16.  * Here is the prototype just in case it is not included
  17.  * in tclPort.h.
  18.  */
  19. int memcmp _ANSI_ARGS_((CONST VOID *s1,
  20.     CONST VOID *s2, size_t n));
  21. /*
  22.  *----------------------------------------------------------------------
  23.  *
  24.  * memcmp --
  25.  *
  26.  * Compares two bytes sequences.
  27.  *
  28.  * Results:
  29.  *     compares  its  arguments, looking at the first n
  30.  *     bytes (each interpreted as an unsigned char), and  returns
  31.  *     an integer less than, equal to, or greater than 0, accord-
  32.  *     ing as s1 is less  than,  equal  to,  or
  33.  *     greater than s2 when taken to be unsigned 8 bit numbers.
  34.  *
  35.  * Side effects:
  36.  * None.
  37.  *
  38.  *----------------------------------------------------------------------
  39.  */
  40. int
  41. memcmp(s1, s2, n)
  42.     CONST VOID *s1; /* First string. */
  43.     CONST VOID *s2; /* Second string. */
  44.     size_t      n;                      /* Length to compare. */
  45. {
  46.     CONST unsigned char *ptr1 = (CONST unsigned char *) s1;
  47.     CONST unsigned char *ptr2 = (CONST unsigned char *) s2;
  48.     for ( ; n-- ; ptr1++, ptr2++) {
  49. unsigned char u1 = *ptr1, u2 = *ptr2;
  50. if ( u1 != u2) {
  51.     return (u1-u2);
  52. }
  53.     }
  54.     return 0;
  55. }