最近来了位新同事,闲暇时分聊了几句,其中有一点让我记忆特别深刻,说:"怎么我们这边代码中的花括号风格都独立另起一行,看代码的时候挺不适应的~",我笑着说:"习惯就好了~"。
其实对于C代码中花括号的书写风格,我也不是第一次听到不一样的声音了,包括之前文章中所编写的一些代码示例,也是有朋友跟我提及此事。
其实对于C代码中的花括号的风格也绝非偶然,他们是有具体的命名和使用考虑的,目前使用比较广泛的是如下两种风格:

风格一:Kernighan & Ritchie风格,也就K&R Style
  1. void function()
  2. {
  3.     if(bTrue){
  4.     //do someting......
  5.     } else{
  6.     //do someting......
  7.     }
  8. }
这种风格的花括号与使用它的语句同一行,其实这也是Linux内核中常采用的一种风格,相比风格二没有单独起一行,在一定程度上降低了代码长度,整体更加紧凑,但使用者经常会衍生出各种变体风格。

风格二:Allman风格,也叫BSD Style。
  1. void function()
  2. {
  3.     if(bTrue)
  4.     {
  5.         //do someting......
  6.     }
  7.     else
  8.     {
  9.         //do someting......
  10.     }
  11. }
这种风格也是我目前习惯的一种编码风格,该编码风格有一种对称美,可能也是早已习惯的原因吧,但缺点也很明显,比较浪费行,一些朋友常说:"我都没写几句代码,却占了一个显示器~"。
至于花括号使用哪种风格也是一直存在一些争议,也没有说哪种风格会更胜一筹,所以不管选择哪种风格,最重要的是保持统一,不用过分纠结。