2013-04-08 82 views
1

每个人都用什么缩进C++预处理器指令? Astyle和Gnu-Ident似乎无法做到这一点!自动缩进预处理器语句

我认为詹姆斯麦克奈利斯对此线程的回答(How do you indent preprocessor statements?)非常有趣。我已经采用了这种风格一段时间了,能够在现有代码上做到这一点会很棒。

我刚刚负责维护一系列与百出类嵌套#的ifdef /#ELSEIF/ELSE#和每个功能都在800 - 1000线(使可读性和折叠块非常非常困难)

回答

0
  1. egrep -r'^ #'srcdir | perl -ne'print“$ 1 \ n”if/^ \ s#\ s *([^ \ s] +)/'| sort -u
  2. 基于代码中存在的预处理关键字,上面的命令将打印一个简单的递归缩进算法,类似于用来检查对称括号的内容。
+0

谢谢bobah! - 但这可能不会将预处理器指令视为普通的C++块。 James McNellis的建议和我见过的其他人所做的就是将预处理器指令视为一个正常的代码块,并与当前所在的其他代码块进行缩进。\ n不知道修改astyle可能是唯一的我们有解决方案! - 理论上讲,如果astyle写得够好,能够定义如何处理#IFDEF,#ELSEIF,#ELSE和#END,应该很容易。 – Taha 2013-04-09 20:11:43

0

我们的C和C++漂亮打印机将处于良好位置的条件视为它们是程序结构的一部分,并相应缩进它们(及其内容)。这些漂亮的打印机包括完整的,精确的C和C++解析器;重新格式化后,他们不会破坏您的代码。

SO讨厌异地链接;检查我的生物。