[编程技巧] C++字符串初始化的优化写法
生活随笔
收集整理的這篇文章主要介紹了
[编程技巧] C++字符串初始化的优化写法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C++中,有很多種字符串變量初始化方式,最常見的寫法是: WCHAR szBuffer[128] = {0};? 或者 WCHAR szBuffer[128] = L""; 其實這種寫法的代碼效率比較低,因為編譯之后的匯編代碼調(diào)用了 memset 函數(shù)。?????? 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++代碼比較丑陋,但是匯編碼卻是很簡介的。 編譯之后產(chǎn)生的匯編碼只有:
?
04906922? mov???????? word ptr [szBuffer],0
總結(jié): C++ 編程中很值得注意一點就是,C++ 代碼的簡介并不一定能夠帶來效率,有時候繁瑣的C++ 代碼反而效率是最高的。 ?
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++代碼比較丑陋,但是匯編碼卻是很簡介的。 編譯之后產(chǎn)生的匯編碼只有:
?
04906922? mov???????? word ptr [szBuffer],0
總結(jié): C++ 編程中很值得注意一點就是,C++ 代碼的簡介并不一定能夠帶來效率,有時候繁瑣的C++ 代碼反而效率是最高的。 ?
轉(zhuǎn)載于:https://blog.51cto.com/wingeek/273926
總結(jié)
以上是生活随笔為你收集整理的[编程技巧] C++字符串初始化的优化写法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 删除VS.NET起始页上项目名称的方法.
- 下一篇: 20110128 学习记录:Datali