繁体   English   中英

Eclipse如何缩进C ++预处理程序宏

[英]Eclipse how can I indent C++ preprocessor macros

我在eclipse中找不到设置,因此可以像缩进代码一样使它自动缩进预处理程序宏。 例如,eclipse尝试格式化这样的代码。

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

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

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

有什么想法可以让日食做到我想要的吗?

ANSI C之前的预处理器不允许在行首和“#”字符之间留空格; 前导“#”必须始终放在第一列中。

如今,ANSI C之前的编译器不存在。 使用您喜欢的样式(“#”前的空格或“#”与标识符之间的空格)。

但我建议您这样做: 在此处输入图片说明

只需使用“查找/替换”对话框,然后按“全部替换”即可

我认为宏缩进是没有选择的。 但我看到clangformat似乎可以使用宏缩进,因此您可以自定义自己的clang格式( http://clang.llvm.org/docs/ClangFormatStyleOptions.html )并将eclipse配置为使用clangformat而不是默认格式。

要缩进预处理程序,您可能需要使用Neatbens 它的格式化程序无视preANSIc。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM