我想改变
int *i;
到
int* i;
使用gnu缩进。我该怎么做?
如果不可能的话,至少如何使 kernighan&ritchie风格
int * i;
到
int *i;
答案 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)