因為之前主要寫Java,最近接手了C++的東西惯退,總看著C++的括號位置好奇怪赌髓,特意查了一下。
C/C++中左花括號位置的爭論由來已久,本文分析了兩種寫法產(chǎn)生的歷史緣由春弥,并提出現(xiàn)在我們應(yīng)該采用的寫法和理由。
下面是引起爭論的兩種風(fēng)格:
- K&R風(fēng)格:
if ( a > 100 ) {
// do somthing…
}
(注:1978年貝爾實驗室正式發(fā)表了C語言叠荠。同時由B.W.Kernighan和D.M.Ritchie (K&R)合著了著名的《The C Programming Language》一書匿沛。書中推薦了一套代碼編寫標(biāo)準(zhǔn),有人稱之為《K&R》標(biāo)準(zhǔn)榛鼎。)
- 微軟風(fēng)格:
if ( a > 100 )
{
// do somthing…
}
網(wǎng)上的朋友有些支持K&R, 因為是它更經(jīng)典逃呼,有的支持微軟,因為它更現(xiàn)代者娱,有的認(rèn)為只是一種習(xí)慣抡笼,哪種都可以,無須糾結(jié)黄鳍。但我還是存在一個疑問:從觀感來看推姻,微軟的風(fēng)格顯然更悅目,更對稱框沟,為什么K&R要推薦這種看上去有些怪異的風(fēng)格藏古?除了習(xí)慣之外,我想不出這樣做的哪怕是一個好處忍燥。
最近忽然想到拧晕,這可能和早期顯示器的分辨率有關(guān):以1981年IBM推出的第一臺計算機彩色顯示器標(biāo)準(zhǔn)CGA為例,它的最高分辨率為640*200梅垄。豎向分辨率居然只有200厂捞, 現(xiàn)在一臺普通的22寸顯示器的豎向分辨率是1080,大約是它的5倍队丝!在這種情況下靡馁,屏幕空間就金貴了,K&R的風(fēng)格可以省一行的空間炭玫,否則一屏根本顯示不了幾行代碼奈嘿。有時候令人非常困惑的問題,答案往往意想不到的簡單.
我覺著之所以會流行微軟風(fēng)格會不會是因為代碼統(tǒng)計的緣故,同樣的代碼,會很奇怪的多處很多很多行.(偷笑)