clang-format配置:如何实现变量指针右对齐、函数指针左对齐?
clang-format 函数与变量指针对齐差异化配置问题
clang-format 目前没有原生配置项可以单独区分变量和函数的指针对齐规则:
- 当设置
PointerAlignment: Right时,变量和函数的星号都会靠右附着,即char *p;和char *foo(void); - 当设置
PointerAlignment: Left时,两者的星号都会靠左附着,即char* p;和char* foo(void);
如果要实现「变量星号靠右、函数星号靠左」的差异化效果,只能通过两种非原生方式实现:
- 修改clang-format源码打补丁:新增一个类似
FunctionPointerAlignment的配置项,单独控制函数声明的指针对齐逻辑,之后自行编译clang工具链。 - 脚本后处理:用Python或其他脚本扫描格式化后的代码,匹配函数声明的指针模式,将
char *foo这类格式替换为char* foo,同时保留变量的char *p格式。
内容的提问来源于stack exchange,提问作者BЈовић
相关产品推荐
相关产品推荐

