0
例如,在一個很長的循環:
(bool x;
)哪種性能更好?要測試一個布爾值是否爲真或將其設置爲所有時間?
要始終測試:
if (!x) x = true;
或只是將其設置爲true,所有的時間:
x = true;
例如,在一個很長的循環:
(bool x;
)哪種性能更好?要測試一個布爾值是否爲真或將其設置爲所有時間?
要始終測試:
if (!x) x = true;
或只是將其設置爲true,所有的時間:
x = true;
無條件更重要的是,分配更容易閱讀。這樣的代碼執行起來不太可能會影響任何程序的整體性能。
如果第一種形式是更快的編譯器總是會這樣做。 – usr
由於這是不可知的語言,請記住,如果在分配bool時存在副作用,則兩個版本不一樣。 (例如:如果bool是一個類,則overritten setter,如果bool是一個信號,則會改變併發性) –