如何通过GNU indent实现函数星号紧接类型、声明星号靠近变量?
能否用GNU indent实现混合指针格式?
很遗憾地说,GNU indent没办法同时满足你想要的两种指针排版规则——也就是在函数定义的参数里让星号紧跟类型,同时在普通变量声明里让星号贴近变量名。
原因在于GNU indent的指针对齐逻辑是全局统一的,它没有区分「函数参数中的指针」和「普通变量声明中的指针」的配置项。它主要通过以下参数控制星号位置:
- 使用
-kr(K&R风格)参数时,星号会始终靠近变量,不管是函数参数还是普通声明:void *foo(int *a) int *a, b; - 使用
-gnu(GNU风格)参数时,星号会始终紧跟类型,同样全局生效:void* foo(int* a) int* a, b;
如果一定要实现你描述的混合风格,可能需要结合其他代码格式化工具,或者对部分代码进行手动调整——毕竟GNU indent的设计目标是统一代码风格,而非支持这种细分场景的混合排版。
内容的提问来源于stack exchange,提问作者Roberto Aureli
相关产品推荐
相关产品推荐

