使用 GNU 缩进如何将 int * 转换为 int*



我想改变

int *i;

int* i;

使用 GNU 缩进。我该怎么做呢?

如果不可能,至少如何使 Kernighan&Ritchie 风格

int * i;

int *i;

我在GNU缩进手册中没有找到任何相应的选项。另一种方法是使用 AStyle,它提供了--align-pointer选项:

--align-pointer=type/-k1

int* a;

--align-pointer=middle/-k2

int * a;

--align-pointer=name/-k3

int *a;

我相信,gnu ident 没有这个选项。另一方面,CLang 格式似乎将其作为指针对齐选项,可以采用以下选项:

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

int* a;

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

int *a;

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

int * a;

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

我该怎么做呢?

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

GNU 缩进的文档没有清楚地描述任何专门影响指针声明中星号周围空格的选项,但它确实有一个用于请求 K&R 样式的总括选项-kr,我发现这确实会导致indent执行您请求的格式,将星号依偎在标识符旁边。 当然,它还有许多其他效果,尽管这些效果可以被其他显式选项覆盖。

默认的"-gnu常规样式"选项具有此效果。 这使得区分哪个细节选项控制这种特定行为变得棘手,但当然,你的问题的一个答案是indent将你的指针声明转换为你描述的K&R样式,根本没有任何选项。

实际上,据我所知,无论您提供什么选项,indent都会执行该特定格式。 似乎没有任何选择来调节这种行为。

使用-pal

来自 GNU 缩进手册:

-pal

--pointer-align-left

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

最新更新