int memcpy(const void* ptr1, const void* ptr2, size_t num);
从ptr1和ptr2指向的位置开始比较大小
返回值:
ptr1 > ptr2, 返回大于0的数
ptr1 < ptr2, 返回小于0的数
ptr1 == ptr2, 返回等于0的数
大小端存储模式:
大端存储模式:低权值(字节)存储在高地址,高权值(字节)存储在低地址
小端存储模式:低权值(字节)存储在低地址,高权值(字节)存储在高地址
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_memcmp(const void* a1, const void* a2, int count){
assert(a1 && a2);//断言
while(count--){
if( *(char*)a1 == *(char*)a2 ){
(char*)a1++;
(char*)a2++;
}else if(*(char*)a1 > *(char*)a2 ){
return 1;
}else{
return -1;
}
}
return 0; //相等的情况
}
int main(){
//内存存储,小端存储模式 低字节放在低地址,高字节放在高地址
//a1 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00
//a2 01 00 00 00 02 00 00 00 04 00 00 00 03 00 00 00 05 00 00 00
int a1[] = {1,2,3,4,5};
int a2[] = {1,2,3,3,5};
int ret = my_memcmp(a1,a2,9);
printf("%d ",ret);
return 0;
}
//比较字符串
/*int main(){
char* p1 = "abcd";
char* p2 = "abcdef";
int ret = my_memcmp(p1,p2,5);
printf("%d ",ret);
}*/