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



当前如果我写int * ptr;,那么自动格式化会将其转换为int* ptr;,这是我不想要的。在谷歌上搜索了一下之后,我在这里找到了解决方法。我必须使用PointerAlignment: PAS_Middle。但我不知道该往哪里补充。

在vscode设置中,我尝试将其添加到C_Cpp: Clang_format_fallback_styleC_Cpp: Clang_format_style中。两者都不起作用。设置中没有保存/应用按钮,所以我希望它能在更改后立即自动更新设置。但不管怎样,每当我使用Shift+Alt+F格式化C代码时,它都会在类型附近加上星号!

我用这种方式解决了它:工具>选项>文本编辑器>C/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格式的错还是vscode的错。现在,我将重新使用vcFormat

最新更新