2016-07-06 44 views
0

例如,在一個很長的循環:
bool x;哪種性能更好?要測試一個布爾值是否爲真或將其設置爲所有時間?

要始終測試:

if (!x) x = true; 

或只是將其設置爲true,所有的時間:

x = true; 
+0

如果第一種形式是更快的編譯器總是會這樣做。 – usr

+0

由於這是不可知的語言,請記住,如果在分配bool時存在副作用,則兩個版本不一樣。 (例如:如果bool是一個類,則overritten setter,如果bool是一個信號,則會改變併發性) –

回答

0

無條件更重要的是,分配更容易閱讀。這樣的代碼執行起來不太可能會影響任何程序的整體性能。