日本高清色午夜com,色综合国产精品视频,午夜亚洲在在线观看,国产午夜在线网站

      <td id="p7kjh"></td>
      <td id="p7kjh"></td>

      首頁(yè) > 綜合動(dòng)態(tài) >

      C語(yǔ)言memcpy(memcpy)

      發(fā)布時(shí)間:2024-06-16 10:01:08來(lái)源:

      哈嘍,大家好~~~我是小編田甜,關(guān)于C語(yǔ)言memcpy,memcpy這個(gè)很多人還不知道,那么現(xiàn)在讓田甜帶著大家一起來(lái)看看吧!

      1、d,s是兩個(gè)字符型指針,分別指向目標(biāo)傳位置和源傳位置在判斷 if(((long)d | (long)s) & lmask) 中,舉個(gè)具體的例子假設(shè)是32位計(jì)算機(jī),字長(zhǎng) word= 32/8 為4,即占4個(gè)byte,則lmask = 000……00011則d與s若是對(duì)齊的,應(yīng)只有第三位及更高位不同(從低位算起)則(long)d | (long)s的最低兩位一定是00,例如 d = **……**10100 s = **……**00100,則(long)d | (long)s = **……**10100,此時(shí)((long)d | (long)s) & lmask = 0,即對(duì)齊的話不做if中的語(yǔ)句,直接從整字開始copy內(nèi)存內(nèi)容否則,((long)d | (long)s) & lmask 非0,進(jìn)入if語(yǔ)句:if((((long)d ^ (long)s) & lmask) || (count < lsize)) 中,記住lmask = 000……00011,所以(long)d ^ (long)s指d,s最低兩位若完全相同,如都為10,10或者01,01,或者11,11,(不可能同時(shí)為00,00),則((long)d ^ (long)s) & lmask)為假,此時(shí)若count>=lsize,即判斷為假,則len = lsize - ((long)d & lmask);其中((long)d & lmask)指d中后兩位1的個(gè)數(shù),為0個(gè),1個(gè),2個(gè)或者3個(gè),而lsize - ((long)d & lmask)既是從d開始放,到下一個(gè)整字開始前還有幾個(gè)空位,只能相應(yīng)的為3個(gè),2個(gè),1個(gè)或者0個(gè)。

      2、隨后的語(yǔ)句是指把先前面的0~3個(gè)零頭字節(jié)復(fù)制掉,count -= len; for(; len > 0; len--) *d++ = *s++;否則,若d與s開始時(shí)就完全錯(cuò)開,如(10,11)或者(count < lsize),判斷為真,指的是若d與s開始時(shí)就完全錯(cuò)開,則逐字節(jié)復(fù)制即可,此時(shí)不可整字復(fù)制,或者雖然d和s是非整字對(duì)齊,如同為01,01,但是copy內(nèi)容小于lsize(比如是4),不會(huì)存在大小為4byte的整字需要復(fù)制,則從d開始從頭到尾復(fù)制即可,即for(len = count / lsize; len > 0; len--)循環(huán)中的內(nèi)容。

      3、for(len = count & lmask; len > 0; len--) *d++ = *s++;因?yàn)閘mask = 000……00011,則len = count & lmask即字符串的最后0~3個(gè)字符,所以最后的for是把整字之外剩余的零頭也copy過(guò)去講的比較混亂,按這個(gè)思路仔細(xì)想象就行了。

      4、Good luck!。

      本文分享完畢,希望對(duì)大家有所幫助哦。

      免責(zé)聲明:本文為轉(zhuǎn)載,非本網(wǎng)原創(chuàng)內(nèi)容,不代表本網(wǎng)觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。