C++ 是否有用于C和C++;那个检查格式?

C++ 是否有用于C和C++;那个检查格式?,c++,c,linux,code-formatting,lint,C++,C,Linux,Code Formatting,Lint,我有一个被很多人触动的代码库。虽然大多数人都努力使代码保持良好的格式(例如,一致的缩进和大括号的使用),但有些人不这样做,甚至那些这样做的人也不能总是这样做,因为我们都使用不同的编辑器,所以像空格和制表符这样的设置是不同的 是否有任何标准的lint工具可以检查代码是否正确格式化,但实际上不会更改它(如indent但只返回错误和警告) 虽然这个问题可以得到普遍回答,但我的重点是C和C++,因为这就是这个项目的编写。 < P> Linux内核使用一个工具,它确实做到了这一点——它被调用。您必须修改它

我有一个被很多人触动的代码库。虽然大多数人都努力使代码保持良好的格式(例如,一致的缩进和大括号的使用),但有些人不这样做,甚至那些这样做的人也不能总是这样做,因为我们都使用不同的编辑器,所以像空格和制表符这样的设置是不同的

是否有任何标准的lint工具可以检查代码是否正确格式化,但实际上不会更改它(如
indent
但只返回错误和警告)


虽然这个问题可以得到普遍回答,但我的重点是C和C++,因为这就是这个项目的编写。

< P> Linux内核使用一个工具,它确实做到了这一点——它被调用。您必须修改它来检查您的编码标准,而不是他们的编码标准,但这可能是一个很好的基础。(它也是为C代码而不是C++设计的。)

有几个程序可以在保存时自动为您进行格式化(例如Eclipse)。您可以使用每个人都可以使用的格式设置,以确保格式相同

也可以在提交代码时自动应用这种格式。使用SVN时,执行此操作的系统称为SVN挂钩。这基本上会在提交时启动一个程序来处理(或检查和拒绝)格式


说明如何制作自己的。但也有一些已经存在,可以做到这一点。

谷歌使用。这是他们的。

看一看,它已经有许多可用的文件,但很好的一点是,您可以修改它们或编写自己的文件。

复制文件,在其上应用缩进,然后区分这两个文件?我想在构建过程中自动执行此操作。我只是想知道是否有更好的方法。请注意,对于SVN,不建议在预提交挂钩中更改文件:您是对的,最好是在格式错误时拒绝提交(但只有在所有格式都是自动的情况下才有效)。建议根本不使用SVN(Linus Torvalds建议git:)@弗兰克——追随莱纳斯的记录是个坏主意;git不能扩展到大型回购,并且还有其他已知的问题。@GoodPerson-它没有?o、 0我有一个git repo,它有几GB的大小,主要由二进制文件组成。可惜Google的cpplint不容易配置。这是标准linux发行版的一部分吗?不,但它只是一个perl脚本(可在我回答中的链接上找到:)