漩涡鸣人 发表于 2014-9-21 00:34:56

C标准库之内存操作函数——memcmp

功能:memcmp函数比较内存空间buf1和buf2的前count个字节的值的大小
函数原型:void * memcmp(const void * buf1, const void * buf2, unsigned int count);

参数:
参数说明
buf1要进行比较的空间首地址
buf2要进行比较的空间首地址
count比较的字节数

返回值:当buf1<buf2时,返回值<0当buf1=buf2时,返回值=0当buf1>buf2时,返回值>0
要求:
函数需要的头文件
memcmp<string.h>

举例:#include <stdio.h>
#include <string.h>

void print(int cmpvar);//memcmp结果输出函数

int main(void)
{
    int buf1 = 0x80, buf2 = 0x40;

    printf("空间1的值:%#x 空间2的值:%#x\n", buf1, buf2);
    print(memcmp(&buf1, &buf2, sizeof(int)));//buf1 > buf2的情况

    buf2 = 0x80;
    printf("空间1的值:%#x 空间2的值:%#x\n", buf1, buf2);
    print(memcmp(&buf1, &buf2, sizeof(int)));//buf1 = buf2的情况

    buf2 = 0xf0;
    printf("空间1的值:%#x 空间2的值:%#x\n", buf1, buf2);
    print(memcmp(&buf1, &buf2, sizeof(int)));//buf1 < buf2的情况
    return 0;
}

void print(int cmpvar)//memcmp结果输出函数
{
    if(cmpvar > 0)
    {
      printf("buf1 > buf2\n");
    }
    else if(cmpvar == 0)
    {
      printf("buf1 = buf2\n");
    }
    else
    {
      printf("buf1 < buf2\n");
    }
}

运行效果:

sherwin002 发表于 2014-9-21 14:44:24

鸣人这个感觉好有难度,真是辛苦了~学习~

shilin42 发表于 2015-5-6 11:27:37

就喜欢这种无私的人才啊,
页: [1]
查看完整版本: C标准库之内存操作函数——memcmp