2011-10-26 63 views
0

其中哪一個會生成最高效/較小的二進制代碼?iPhone - 哪個會生成最高效/較小的代碼?

int sum = 0; 
for (NSNumber * oneObj in objArray) { 
    if ([oneObj intValue] > 10) 
     sum += [oneObj intValue]; 
    else 
     sum -= [oneObj intValue]; 
} 

或那樣嗎?

int sum = 0; 
for (NSNumber * oneObj in objArray) { 
    sum += ([oneObj intValue] > 10) ? oneObj : -oneObj; 
} 

寫這個濃縮形式的IF有什麼區別嗎?

+3

編譯器可能會優化它反正兩種不同的方法,所以我猜都將是相同的。 – skyuzo

+0

我對此也很感興趣。希望回答的人給出詳細信息! –

+5

我覺得過早優化的氣味。 –

回答

2

編譯版本將是相同的。

這是表達同樣的事情

+3

'[引用需要的]' –

+1

@Matt這不是維基百科。如果你不同意,downvote! –

+0

是的,回到過早優化的高天堂 –