{0}花括号清零 VS memset清零

C语言内存清零:{0}

这里写自定义目录标题


{0}花括号清零 VS memset(dst, 0 , sizeof(dst_type))清零

============================================================

结论

在对C语言一个结构体或一块连续内存清零时,如果是在编译时,就可以确定下来类型和大小的内存区域,特别是小块内存,无疑用**{0}花括号清零**,将目标内存清零是最可取的!

为什么呢?

  • 美学角度

char dst[256] = {0};

VS

char dst[256];
memset(dst, 0, sizeof(dst));

==> {0}花括号清零无疑更简洁,而且给编译器优化留了充分空间

  • API角度

{0}花括号清零:在编译器的指导下,基本上按照机器字的单位进行清零

在x86/64的环境下,编译为64位的程序,对于char example[13] = {0};,使用素数作为长度的连续内存,是按照 ** 8 + 4 + 1 ,使用汇编mov***指令进行清零
如果长度比较长的连续内存,除内存的边角料外,是按照 机器字 ,使用汇编rep stos指令进行清零

大家可自行验证

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值