在 vscode 自动格式中在 C 中声明指针时如何将星号定位在变量名附近?

How to position asterisk near to variable name when declaring pointers in C in vscode auto formatting?

目前,如果我写 int * ptr;,那么自动格式化会将其转换为我不想要的 int* ptr;。在谷歌搜索了一下之后,我找到了 here 的修复方法。我必须使用 PointerAlignment: PAS_Middle。但是我不知道在哪里添加。

在vscode设置中,我尝试在C_Cpp: Clang_format_fallback_styleC_Cpp: Clang_format_style中添加。都没有用。设置里没有save/apply按钮,所以我希望它一更改就自动更新设置。但是尽管如此,每当我使用 Shift+Alt+F 格式化我的 C 代码时,它都会在类型附近放置星号!

好的。我找到了为什么它不起作用。因为,下面的 C_Cpp: Formatting 被设置为 vcFormat 而不是 clangFormat。但是改成 clangFormat 好像不行。相反,它会拒绝格式化!!

那我只好在与此相关的设置下面搜索了。我找到了 Pointer Reference Alignment。但遗憾的是,我没有将其设置为 center,而是不得不将其设置为 ignore,因为 center 会将 int *const ptr; 转换为 int * const ptr;

编辑:感谢@Shawn 在评论中将我指向 .clang-format 文件。我现在可以在 vscode 中使用 clangFormat。但是在同一个项目的不同文件夹下的不同文件之间是不一致的!不知道是clang-format还是vscode的错。现在,我正在回退到使用 vcFormat.