Eclipse如何缩进C ++预处理器宏

时间:2015-08-29 14:12:31

标签: c++ eclipse

我在eclipse中找不到一个设置,所以我可以让它自动缩进我的预处理器宏,就像缩进代码一样。例如,eclipse试图像这样格式化代码。

DECLARE @id INT = (SELECT id FROM …);

而我希望它看起来像......

int main()
{
#ifdef SOMETHING
     cout << "Something Defined" << endl;
#endif
    return 0;
}

任何想做日食的想法都是我想要的吗?

5 个答案:

答案 0 :(得分:2)

预ANSI-C预处理器不允许行开头和“#”字符之间的空格;领先的“#”必须始终放在第一列。

现在,ANSI-C之前的编译器不存在。使用哪种风格(“#”之前的空格或“#”与标识符之间的空格)。

但我建议你这样做: enter image description here

只需使用“查找/替换”对话框并按“全部替换”

答案 1 :(得分:1)

I think there is no option for macro indentation. But I see clangformat seems to have option for macro indentation so you can customize your own clang format (http://clang.llvm.org/docs/ClangFormatStyleOptions.html) and configure eclipse to use clangformat instead of the default.

答案 2 :(得分:1)

要缩进预处理器,您可能需要使用Neatbens。它的格式化程序忽略了preANSIc。

答案 3 :(得分:0)

Eclipse缩进是正确的。无论周围代码的缩进如何,预处理程序指令都应位于最左侧的列中。

答案 4 :(得分:0)

像其他人已经指出的那样,编译器指令#必须从第一列开始才能符合标准。然而,允许在它们后面留出空间。所以我的首选解决方案如下所示,然后它应该不再是日食问题。

int main()
{
#  ifdef SOMETHING
     cout << "Something Defined" << endl;
#  endif
}