memset使用注意

注意1 :memset是以字节为单位对内存赋值。

请看以下两个例子。

因为例1的数组是字符型的,字符型占据内存大小是1Byte,而memset函数也是以字节为单位进行赋值的,所以你输出没有问题。而例2的数组是整型的,使用memset还是按字节赋值,这样赋值完以后,每个数组元素的值实际上是0x01010101即十进制的16843009

 

注意2:memset()虽然方便,但是非常耗费CPU。因此服务器端程序还是慎用为妙。

当又要追求速度,又要不占用CPU时,可以根据需要采取首位或所需最后位补0的方法。

(当然,你需要控制好长度问题)

以下三个例子来说明初始化速度。

例子1用了普通的循环赋值(耗时3078ms左右)。

例子2用了memset方法(耗时828ms左右)。

例子3则是采用了在数组末端补0来控制字符串长度(耗时16ms左右)。

BCB6.0下编译通过。

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值