用gnu缩进如何使int *成为int *

时间:2018-12-05 16:18:25

标签: c++ c gnu-indent

我想改变

int *i;

int* i;

使用gnu缩进。我该怎么做?

如果不可能的话,至少如何使 kernighan&ritchie风格

int * i;

int *i;

4 个答案:

答案 0 :(得分:2)

我相信,gnu ident没有此选项。另一方面,CLang格式似乎具有 PointerAlignment 选项,该选项可以采用以下选项:

可能的值: PAS_Left(在配置中:向左)将指针向左对齐。

int* a;

PAS_Right(在配置中:右)将指针向右对齐。

int *a;

PAS_Middle(在配置中:Middle)将指针对准中间。

int * a;

更多详细信息可以在这里找到:https://clang.llvm.org/docs/ClangFormatStyleOptions.html

答案 1 :(得分:2)

我在GNU indent manual中找不到任何相应的选项。一种替代方法是使用AStyle,它提供了--align-pointer选项:

使用--align-pointer=type / -k1

int* a;

使用--align-pointer=middle / -k2

int * a;

使用--align-pointer=name / -k3

int *a;

答案 2 :(得分:1)

  

我该怎么做?

     

如果不可能的话,如何至少使克尼根和里奇风格化

GNU缩进的文档没有明确描述任何具体影响指针声明中星号周围空格的选项,但是它确实具有用于请求K&R样式的伞形选项-kr,我发现这确实导致了indent执行您要求的格式化,在标识符旁边贴上星号。当然,它还具有许多其他作用,尽管可以被其他显式选项所覆盖。

-gnu常规样式选项(默认为)具有此效果。这使得很难找出哪个细节选项控制此特定行为,但是肯定可以回答您的问题,indent会将指针声明转换为您描述的K&R样式,根本没有任何选项。

事实上,据我所知,indent将执行该特定格式,无论您提供什么选项。似乎没有任何办法可以调节这种行为。

答案 3 :(得分:0)

使用-pal

来自 GNU 缩进 manual

<块引用>

-pal

--pointer-align-left

将星号放在空格左侧的指针声明中,类型旁边:“char* p”