我在eclipse中找不到一个设置,所以我可以让它自动缩进我的预处理器宏,就像缩进代码一样。例如,eclipse试图像这样格式化代码。
DECLARE @id INT = (SELECT id FROM …);
而我希望它看起来像......
int main()
{
#ifdef SOMETHING
cout << "Something Defined" << endl;
#endif
return 0;
}
任何想做日食的想法都是我想要的吗?
答案 0 :(得分:2)
预ANSI-C预处理器不允许行开头和“#”字符之间的空格;领先的“#”必须始终放在第一列。
现在,ANSI-C之前的编译器不存在。使用哪种风格(“#”之前的空格或“#”与标识符之间的空格)。
只需使用“查找/替换”对话框并按“全部替换”
答案 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
}