2011-03-10 89 views
1

假設我有這樣的結構(或類,我的問題適用於):0初始化的C++內置類型

struct builtin 
{ 
    int a; 
    int b; 
    builtin() : a(), b(0) { } 
}; 

我知道a和b會通過的構造函數初始化爲0內置。 我的問題是:一種方法比另一種更快嗎?

+0

我認爲這樣的微觀優化是不必要的,你應該專注於更復雜的應用程序邏輯優化 – n00b 2011-03-10 16:13:33

+1

a()起初速度更快,因爲你有一個較少的字符鍵入,但b(0)更快後攤還所有次你會讀這行。 2011-03-10 16:14:03

+0

對於一個字符的差異,我認爲這是值得的,當你考慮內置類型初始化可以被稱爲程序中的一千次。 – plmaheu 2011-03-10 16:18:17

回答

1

答案:否。編譯的代碼是相同的。

7

他們這樣做,並採取相同的時間。而且,在這個級別上的優化是毫無意義的,直到一個分析器證明相反。使用更可讀的東西。

+0

如果速度更快,對新代碼有用。我不同意幾乎免費的優化(一個字符差異)是毫無意義的。 – plmaheu 2011-03-10 16:30:26

+1

編譯器編寫人員已經知道由於一個字符差異而發生的優化。他們讓它自動發生。相信你的編譯器! – 2011-03-10 16:39:13

+0

+1爲可讀性。 – 2011-03-10 17:51:24

1

結果機器代碼沒有區別,僅在可讀性方面。這裏,a默認初始化,而b設置爲特定值。

在源代碼中顯示這一點很重要嗎?選擇最有意義的那個!