You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:25:08