假設我有這樣的結構(或類,我的問題適用於):0初始化的C++內置類型
struct builtin
{
int a;
int b;
builtin() : a(), b(0) { }
};
我知道a和b會通過的構造函數初始化爲0內置。 我的問題是:一種方法比另一種更快嗎?
假設我有這樣的結構(或類,我的問題適用於):0初始化的C++內置類型
struct builtin
{
int a;
int b;
builtin() : a(), b(0) { }
};
我知道a和b會通過的構造函數初始化爲0內置。 我的問題是:一種方法比另一種更快嗎?
答案:否。編譯的代碼是相同的。
他們這樣做,並採取相同的時間。而且,在這個級別上的優化是毫無意義的,直到一個分析器證明相反。使用更可讀的東西。
如果速度更快,對新代碼有用。我不同意幾乎免費的優化(一個字符差異)是毫無意義的。 – plmaheu 2011-03-10 16:30:26
編譯器編寫人員已經知道由於一個字符差異而發生的優化。他們讓它自動發生。相信你的編譯器! – 2011-03-10 16:39:13
+1爲可讀性。 – 2011-03-10 17:51:24
結果機器代碼沒有區別,僅在可讀性方面。這裏,a默認初始化,而b設置爲特定值。
在源代碼中顯示這一點很重要嗎?選擇最有意義的那個!
我認爲這樣的微觀優化是不必要的,你應該專注於更復雜的應用程序邏輯優化 – n00b 2011-03-10 16:13:33
對於一個字符的差異,我認爲這是值得的,當你考慮內置類型初始化可以被稱爲程序中的一千次。 – plmaheu 2011-03-10 16:18:17