当前如果我写int * ptr;
,那么自动格式化会将其转换为int* ptr;
,这是我不想要的。在谷歌上搜索了一下之后,我在这里找到了解决方法。我必须使用PointerAlignment: PAS_Middle
。但我不知道该往哪里补充。
在vscode设置中,我尝试将其添加到C_Cpp: Clang_format_fallback_style
和C_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
。