c++中,有很多種字串變數初始化方式,最常見的寫法是:
wchar szbuffer[128] = ; 或者 wchar szbuffer[128] = l"";
其實這種寫法的**效率比較低,因為編譯之後的彙編**呼叫了 memset 函式。
wchar szbuffer[128] = ;
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++ **反而效率是最高的。
C 列表初始化,字串初始化
列表初始化 int a 0 int a 全面應用 int a int a 0 預設初始化 定義變數時,沒有指定初值,則變數被預設初始化。定義函式體外的變數被初始化為0,函式體內部的內建型別變數不被初始化。字串初始化 string s1 string s2 s1 string s2 s1 string...
字串初始化
在c語言程式設計中,當我們宣告乙個字串陣列的時候,常常需要把它初始化為空串。總結起來有以下三種方式 1 char str 10 2 char str 10 3 char str 10 str 0 0 第 1 2 種方式是將str陣列的所有元素都初始化為 0 而第 3 種方式是只將str陣列的第乙個元...
字串初始化
在 裡,經常會用字串進行初始化操作。比如 void func void 對於上面2條初始化語句,它們的區別是什麼呢?1,首先,hello world 是乙個字串常量,存放在靜態常量區。2,str1是乙個字元陣列,分配在棧上,儲存空間由 hello world 的長度 含 0 決定,存放的內容由 he...