我想改变
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”
。