[编程技巧] C++字符串初始化的优化写法

C++中,有很多种字符串变量初始化方式,最常见的写法是:

WCHAR szBuffer[128] = {0};  或者 WCHAR szBuffer[128] = L"";

其实这种写法的代码效率比较低,因为编译之后的汇编代码调用了 memset 函数。       

WCHAR szBuffer[128] = {0};

04906922  mov         word ptr [szBuffer],0
0490692B  push        0FEh
04906930  push        0   
04906932  lea         ecx,[ebp-13Eh]
04906938  push        ecx 
04906939  call        memset (4807C7Ah)
正确的初始化写法应该是:
 
WCHAR szBuffer[128];
szBuffer[0] = 0;
虽然C++代码比较丑陋,但是汇编码却是很简介的。 编译之后产生的汇编码只有:
 
04906922  mov         word ptr [szBuffer],0
总结: C++ 编程中很值得注意一点就是,C++ 代码的简介并不一定能够带来效率,有时候繁琐的C++ 代码反而效率是最高的。

转载于:https://www.cnblogs.com/ajuanabc/archive/2008/05/31/2462849.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值