程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言模擬實現memset.memcmp函數

C語言模擬實現memset.memcmp函數

編輯:關於C
 之前我們實現了memmove、memcpy函數進行內存拷貝,僅限我們實現memset與memcmp函數進行內存初始化和內存比較的功能。     memset(void*,int,size_t)其功能試講傳遞進來的類型用整形來初始化n個單位,核心也是對強制類型轉換的理解與運用,代碼如下:
void*my_memset(void*str, int set, size_t count)
{
assert(str);
void*p = str;
while (count--)
{
*(int*)str = set;
str = (int*)str + 1;
}
return p;
}

 

    memcmp也是一樣的道理,代碼如下:
int my_memcmp(void*buf1, void*buf2, size_t count)
{
assert(buf1);
assert(buf2);
while (count--)
{
if (*(char*)buf1 == *(char*)buf2)
{
buf1 = (char*)buf1 + 1;
buf2 = (char*)buf2 + 1;
}
else
{
if (*(char*)buf1 > *(char*)buf2)
{
return 1;
}
else
{
return -1;
}
}
}
return 0;
}

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved