目前,如果我写int * ptr;
,那么自动格式化会将其转换为int* ptr;
,这是我不想要的。在谷歌上搜索了一下之后,我发现here可以修复这个问题。我必须使用PointerAlignment: PAS_Middle
。但我不知道在哪里添加。
在vscode设置中,我试图在C_Cpp: Clang_format_fallback_style
和C_Cpp: Clang_format_style
中添加它。两个都没用。设置中没有保存/应用按钮,所以我希望它会自动更新设置,只要改变它。但是无论如何,每当我使用Shift+Alt+F格式化我的C代码时,它会把星号放在类型附近!
2条答案
按热度按时间uqjltbpv1#
我是这样解决的:工具〉选项〉文本编辑器〉C/C++〉代码样式〉格式〉间距。在右侧窗口的列表末尾有一个“指针/参考对齐”部分,选择您喜欢的选项。
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
。