2010-03-14 29 views
12

我有一個被很多人碰過的代碼庫。雖然大多數人作出努力,保持代碼的格式良好的(如壓痕一致和使用大括號),有的沒有,甚至那些確實不能總是這樣做,因爲大家都用不同的編輯器,所以像空間VS設置。選項卡是不同的。有C和C++檢查格式的任何lint工具嗎?

是否有檢查代碼格式正確,但實際上並沒有改變什麼標準皮棉工具(如indent但僅返回錯誤和警告)?

雖然這個問題可以普遍回答,我的重點是C和C++,因爲這是該項目是寫在

+1

複製文件,應用就可以縮進,然後diff的兩個? – kennytm 2010-03-14 11:10:08

+0

我想作爲構建過程的一部分自動執行此操作。我只是想知道是否有更好的方法。 – 2010-03-14 11:15:54

回答

3

Linux內核使用的一個工具,正是這一點 - 這就是所謂的checkpatch。你必須修改它來檢查你的編碼標準,而不是他們的,但它可能是從工作的良好基礎。 (它也是爲C代碼而非C++設計的)。

+0

這是標準linux發行版的一部分嗎? – 2010-03-15 09:53:22

+0

沒有,但它只是一個perl腳本(可在我的答案鏈接:http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/) – caf 2010-03-15 21:21:37

1

有幾個程序,可以爲您自動保存時(如Eclipse)做格式化。您可以擁有每個人都可以使用的格式設置,以確保格式相同。

也可以在代碼提交到自動套用格式等。當你使用SVN時,系統做到這一點稱爲svn鉤子。這基本上啓動了一個程序來處理(或檢查和拒絕)發生提交時的格式。

This site解釋瞭如何使自己的。但也有這樣做的。

+4

注意,對於SVN,改變文件一個pre-commit鉤子不建議:http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks – sbi 2010-03-14 11:48:20

+1

你是對的,更好的是否認當格式是錯誤的提交(但只有當所有的格式是自動工作) – Thirler 2010-03-14 20:39:25

+2

建議在所有未使用SVN(Linus Torvalds的建議混帳:) – Frank 2011-07-18 21:51:17

7

谷歌使用cpplint。這是他們的style guide

+3

太糟糕了,Google的cpplint不易配置。 – dalle 2010-03-14 15:29:40

1

看看Vera++,它有一個rules已經可用,但最好的部分是,你可以修改它們或寫你自己的。

相關問題