首页 > 热点

全球热门:memcpy原型(memcpy)

中钢网 2023-06-24 10:13:55


(资料图片)

1、d,s是两个字符型指针,分别指向目标传位置和源传位置在判断 if(((long)d | (long)s) & lmask) 中,举个具体的例子假设是32位计算机,字长 word= 32/8 为4,即占4个byte,则lmask = 000……00011则d与s若是对齐的,应只有第三位及更高位不同(从低位算起)则(long)d | (long)s的最低两位一定是00,例如 d = **……**10100 s = **……**00100,则(long)d | (long)s = **……**10100,此时((long)d | (long)s) & lmask = 0,即对齐的话不做if中的语句,直接从整字开始copy内存内容否则,((long)d | (long)s) & lmask 非0,进入if语句:if((((long)d ^ (long)s) & lmask) || (count < lsize)) 中,记住lmask = 000……00011,所以(long)d ^ (long)s指d,s最低两位若完全相同,如都为10,10或者01,01,或者11,11,(不可能同时为00,00),则((long)d ^ (long)s) & lmask)为假,此时若count>=lsize,即判断为假,则len = lsize - ((long)d & lmask);其中((long)d & lmask)指d中后两位1的个数,为0个,1个,2个或者3个,而lsize - ((long)d & lmask)既是从d开始放,到下一个整字开始前还有几个空位,只能相应的为3个,2个,1个或者0个。

2、随后的语句是指把先前面的0~3个零头字节复制掉,count -= len; for(; len > 0; len--) *d++ = *s++;否则,若d与s开始时就完全错开,如(10,11)或者(count < lsize),判断为真,指的是若d与s开始时就完全错开,则逐字节复制即可,此时不可整字复制,或者虽然d和s是非整字对齐,如同为01,01,但是copy内容小于lsize(比如是4),不会存在大小为4byte的整字需要复制,则从d开始从头到尾复制即可,即for(len = count / lsize; len > 0; len--)循环中的内容。

3、for(len = count & lmask; len > 0; len--) *d++ = *s++;因为lmask = 000……00011,则len = count & lmask即字符串的最后0~3个字符,所以最后的for是把整字之外剩余的零头也copy过去讲的比较混乱,按这个思路仔细想象就行了。

4、Good luck!。

本文分享完毕,希望对大家有所帮助。

上一篇 下一篇
热文推荐 更多

全球热门:memcpy原型(memcpy)

2023-06-24

参考消息特稿 | “千万工程”20年实践激发世界回响 滚动

2023-06-24

全球关注:下半年,苦尽甘来,好运不断,事业收获满满,家庭和睦的3星座

2023-06-24

真棒!汶川地震中的“敬礼娃娃”郎铮高考文科637分

2023-06-24

初恋情人刘小慧下载百度网盘_初恋情人刘小慧mp3下载|头条焦点

2023-06-24

全球观点:美联储戴利:今年再加息两次是非常合理的预测

2023-06-24

a1586是苹果几代(a1586)

2023-06-24

三签约达成:拜仁白菜价签约格雷罗,切尔西签下杰克逊,皇马与塞瓦略斯续约 每日头条

2023-06-24

宁夏银川市开展安全生产大排查大整治专项行动_环球消息

2023-06-23

天天快看:TNGA成员齐聚成都车展 一汽丰田猛料十足

2023-06-23

热门车讯热效率达40% 丰田全新动力总成与计划|热闻

2023-06-23

丰顺技改扩规 企业增效 为高质量发展蓄势赋能

2023-06-23

美媒文章:西方经济认知全面崩塌

2023-06-23

辽宁庄河警方通报:蓉花山镇发生命案致6人死亡,嫌疑人已抓获

2023-06-23

富士山在哪个城市看最美_富士山在_环球观焦点

2023-06-23

全国中小学生免费网课怎么投屏_全国中小学生免费网课哪家好-即时焦点

2023-06-23

中国铁路7月1日起实行新的列车运行图

2023-06-23

文班亚马当选状元创3大神迹:法国历史首人+21年继姚明后首人-每日热文

2023-06-23

【热闻】高中数学一轮复习讲义(专题41 直线与圆锥曲线)

2023-06-23

川拨棹·为我慢归休款留连 天天短讯

2023-06-23