c标准库源代码之 strncpy/strncat/strncmp

 

一般我们会用一个循环来做

但是标准库作者却重复代码,看起来很麻烦,

但是麻烦的带来的好处是速度的提升:

我们在正常的完全循环中每进行一个字符的操作,就会进行一次循环条件的减法和判断

为了减少这些操作,就重复代码,以空间换时间,这是值得的,因为基础函数的使用频度太大了

那位什么重复次数是 4 呢?

首先为了使用高效的移位而不是除法,这个数字不能是奇数

4Bytes对应32bits,编译器一般还都是32bits的,但这个数字的选择好像与此无关

4在计算机内部真是个明星

当然这个数字不能太大,因为第二部分的循环会增多

也不能太小,否则第一部分的循环会增多

4就算是个折中

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值