2012-12-31 47 views
10

在C++中,你可以通過這樣爲什麼一行中的多個作業被認爲是不好的風格?

x = y = z = 10; 

但多個人做的多任務告訴我這是一個糟糕的風格,我不應該使用它沒有給我一個理由來。

有人可以向我解釋爲什麼這被認爲是一種不好的風格?

+0

Mmn ..我唯一能想到的壞事是可讀性。 –

+1

誰是大家?當然,除了可讀性以外,我無法想到這個問題。 – 2012-12-31 21:37:59

+1

你能否詳細說一下「每個人」是誰?因爲這是當今世界上僅有約10億行源代碼的常見多重分配技術。 – WhozCraig

回答

10

這不是固有的糟糕風格,但是您通常可以通過每行僅執行一個賦值並讓編譯器優化器對事件進行排序來使代碼更加清晰。如果您使用多重任務風格,那麼有時候可能不清楚x = y = z = 10;是有意的還是它是否爲x = y = z + 10;之類的錯字。通過始終將自己限制爲每個語句的一個分配,當發生拼寫錯誤時,您可以明顯看到它。

+0

這很有道理。感謝你的回答。 :) – Caesar

5

只要您知道它們應該都是相同的價值,就沒有問題。

例如

改變

x = y = z = 10; 

x = y = z = 15; 

是很容易的。

但是,如果它們是任意相同的,單獨的作業表達了這一點,並且更易於單獨進行測試。

x = 10; 
y = 10; 
z = 10; 

x = 10; 
y = 15; 
z = 10; 

比有向上突破線更好。

關鍵是你告訴下一個程序員看代碼(或你自己在6個月內)。

16

與定義試試看:

int x; 
bool y; 
int z; 
x = y = z = 10; 

而感到驚訝x的值。

相關問題