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

atmip9wb  于 2023-04-29  发布在  Vscode
关注(0)|答案(2)|浏览(335)

目前,如果我写int * ptr;,那么自动格式化会将其转换为int* ptr;,这是我不想要的。在谷歌上搜索了一下之后,我发现here可以修复这个问题。我必须使用PointerAlignment: PAS_Middle。但我不知道在哪里添加。
在vscode设置中,我试图在C_Cpp: Clang_format_fallback_styleC_Cpp: Clang_format_style中添加它。两个都没用。设置中没有保存/应用按钮,所以我希望它会自动更新设置,只要改变它。但是无论如何,每当我使用Shift+Alt+F格式化我的C代码时,它会把星号放在类型附近!

uqjltbpv

uqjltbpv1#

我是这样解决的:工具〉选项〉文本编辑器〉C/C++〉代码样式〉格式〉间距。在右侧窗口的列表末尾有一个“指针/参考对齐”部分,选择您喜欢的选项。

lb3vh1jj

lb3vh1jj2#

好吧,我知道为什么它不起作用了。因为,下面的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

相关问题