[编程技巧] C++字符串初始化的优化写法-阿里云开发者社区

开发者社区> 技术小胖子> 正文

[编程技巧] 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++ 代码反而效率是最高的。


 本文转自 陈本峰 51CTO博客,原文链接:http://blog.51cto.com/wingeek/273926,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C++字符串的处理-----全部用库函数,效率高
string定义: a) string s; //生成一个空字符串s string a="eholldfs";     a="dfgdfg";     cin>>a; b) string s(str)  //拷贝构造函数 生成str的复制品 c) string s(str,stridx)  //将字...
984 0
汇编程序:字符串加密
字符串加密 (1)编程为datasg段中字符串中的每个字符加密,加密规则是:每个字符的ASCII值加4。加密好的字符写在待加密字符的后面 assume cs:codesg,ds:datasg datasg segment db 'aah, I love you!' db '................' datasg ends codesg
898 0
frame buffer编程--画点功能和新增字符串代替RGBT
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/49467309 (一):写...
651 0
Java性能优化之编程技巧总结
1、慎用异常 在Java软件开发中,经常使用 try-catch 进行错误捕获,但是,try-catch 语句对系统性能而言是非常糟糕的。
859 0
C++ 应用程序性能优化
C++ 应用程序性能优化 eryar@163.com 1. Introduction 对于几何造型内核OpenCASCADE,由于会涉及到大量的数值算法,如矩阵相关计算,微积分,Newton迭代法解方程,以及非线性优化的一些算法,如BFGS,FRPR,PSO等等用于多元函数的极值求解,所以这些数值算法的性能直接影响系统的性能。
1156 0
C#字符串长度
在ArcGIS属性表中,如果是Shape文件,其他字段名称长度不能超过10个字符(一个汉字算两个字条),如果是在数据库中的文件,其他字符名称长度就可超过10个字符。   在我的记忆中,中文字符应该算两个字符,实际在C#中,不管中文、英文、全角、半角,其他长度都是相同的。
767 0
21119
文章
0
问答
文章排行榜
最热
最新