欢迎来到站圈网!

   as  pandas  code/json  ::v-deep  121

投稿中心

C 语言

当前位置:主页 > 编程语言 > C 语言 >

Visual Studio C++指针靠前靠后的问题全面解析

时间:2021-04-08|栏目:C 语言|点击:

本文地址:https://www.cnblogs.com/oberon-zjt0806/p/14631149.html

甜咸之争

经常写C++的基本上避不开使用指针,而且C++中指针类型的写法大体上有两种:

int* a = nullptr; //*靠前
int *b = nullptr; //*靠后

都是声明一个指针。

关于哪种写法的倾向性,每个人都不太一样,有的往前放,有的往后放,还有的👴爱放哪放哪,你管得着嘛。

《C++ Primer》中推荐靠后,原因是:

int *a,b,c; // a是指针,b和c都不是
int* a,b,c; // 一样,但容易引起误会,让人误以为b和c是指针,实则不然

不过用Visual Studio写C++的时候,格式化方式又有所不同,当你敲完int*a=nullptr;后会靠前,会变成int* a=nullptr;,其原因可能是隔壁的C#只允许往前放的写法:

/C#代码
unsafe ...
{
	int* a,b,c; 	// a,b,c都是指针
	int *a,*b,*c; 	// 错误!不让这么写。
}

我倒是不关心C#怎么写,但是在C++的语境下,我赞同《C++ Primer》的观点,喜欢往后放,但是VS就像个傲娇一样,分号一敲完就把我刚写好的int *a变成了int* a

难道甜和咸就不共戴天了么??

当然不是,对于C++代码,VS默认状态下使用的是Clang-Format方案。
Clang-Format将这个问题称为指针对齐,使用PointerAlignment设置,其实听说Clang默认是Right的。不过在Clang-Format配置文件中VS默认将PointerAlignment置为Left

当然,我们倒没必要把VS的Clang-Format配置文件拎出来暴打一顿塞回去,VS其实允许我们手动设置这个风格,步骤如下:

1.菜单栏→工具→选项,打开选项窗口

Visual Studio C++指针靠前靠后的问题全面解析

2.左侧搜索“格式”然后找到箭头所指的项(或者在左侧直接按树找文本编辑器→C/C++

Visual Studio C++指针靠前靠后的问题全面解析

3.依次往下找,代码样式→格式设置→间距,然后在右侧找运算符的间距→指针/引用对齐方式下面有四个选项,你就可以设置成你prefer的方式,然后在下面看预览效果观察*&的位置,确定就好了

Visual Studio C++指针靠前靠后的问题全面解析

这样,VS就不会执拗地把*往前放了。

类似地,关于其他运算符的设置方法也可以在这个上下文中进行,因此这个位置值得记录一下,毕竟恰当设置可以提升开发效率,这个设置的位置又比较隐蔽容易迷路,所以特此记录一下。

到此这篇关于Visual Studio C++指针靠前靠后的全面解析的文章就介绍到这了,更多相关Visual Studio C++指针内容请搜索站圈网以前的文章或继续浏览下面的相关文章希望大家以后多多支持站圈网!

上一篇:如何利用C语言位运算解决只出现一次的数字

栏    目:C 语言

下一篇:没有了

本文标题:Visual Studio C++指针靠前靠后的问题全面解析

本文地址:http://www.zhano.cn/language/Clang/35477.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:12043006 | 邮箱:12043006#qq.com(#换成@)

Copyright © 2019-2020

Power by DedeCms 豫ICP备19001789号