【Visual Studio调教小记录】C++指针靠前靠后??
甜咸之争
经常写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其实允许我们手动设置这个风格,步骤如下:
菜单栏→工具→选项
,打开选项窗口- 左侧搜索“格式”然后找到箭头所指的项(或者在左侧直接按树找
文本编辑器→C/C++
) - 依次往下找,
代码样式→格式设置→间距
,然后在右侧找运算符的间距→指针/引用对齐方式
下面有四个选项,你就可以设置成你prefer的方式,然后在下面看预览效果观察*
和&
的位置,确定就好了
这样,VS就不会执拗地把*
往前放了。
类似地,关于其他运算符的设置方法也可以在这个上下文中进行,因此这个位置值得记录一下,毕竟恰当设置可以提升开发效率,这个设置的位置又比较隐蔽容易迷路,所以特此记录一下。
【Visual Studio调教小记录】C++指针靠前靠后??的更多相关文章
- 后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合
title: 后台大哥请进一步:使用Visual Studio编译scss和souce map实现前后端的完美结合 date: 2020-06-28 sidebarDepth: 2 tags: win ...
- 【调试】Visual Studio 调试小技巧(2)-从查看窗口得到更多信息(转载)
在使用Visual Studio开发调试程序时,我们经常需要打开查看窗口(Watch)来分析变量.有时在查看窗口显示的内容不是很直观.为了能从查看窗口的变量中得到更多的信息,我们需要一些小的技巧.下面 ...
- 11个强大的Visual Studio调试小技巧
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- 11个强大的Visual Studio调试小技巧(转)
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- Visual Studio Code 学习记录
Visual Studio Code的官方文档可以学到很多知识,不只是vs code的用法,包括一些语言的入门 和一些概念等等.很好的文档. ※,user.settings.json中的一些配置说明: ...
- 设置visual studio的小技巧
设置 Visual Studio 方法 1.设置关闭快捷键 Ctrl + W:关闭当前文档窗口 Ctrl + Q:关闭所有文档窗口 设置方法:工具-->选项-->键盘:在显示命令包含中输入 ...
- Visual Studio实用小技巧
有一个有关微软Office的笑话,说的是它的特性太多: 当你觉得自己发现了一个Office的新特性时,它已经存在很多年了. 本文将介绍一些在Visual Studio(免费下载)中很实用却被忽略的小技 ...
- visual studio 一些小技巧 整理
本博客将会陆续的整理一些作者在实际开发中的一些小技巧,一些挺有意思的东西,将会持续更新, 如果有问题,可以加群讨论,QQ群:592132877 #warning的使用 #warning 的意思是在程序 ...
- vc2005(visual studio)使用习惯记录
来源:http://blog.csdn.net/zdl1016/article/details/6184549 前言:sourceinsight不支持显示utf-8的文件, 实在是一大遗憾!vim现在 ...
随机推荐
- leetcode & vscode
leetcode & vscode vscode-leetcode https://marketplace.visualstudio.com/items?itemName=LeetCode.v ...
- yarn & uninstall global & yarn global remove
yarn uninstall global yarn global remove https://yarnpkg.com/lang/en/docs/cli/remove/ https://yarnpk ...
- javascript algorithm visualization
javascript algorithm visualization javascript算法可视化 https://algorithm-visualizer.org https://github.c ...
- HTML5 & custom element & template
HTML5 & custom element & template template https://codepen.io/xgqfrms/pen/eYYExvp https://cs ...
- Dart http库
推荐下我写的一个http库ajanuw_http 最基本的获取数据 import 'package:http/http.dart' as http; main(List<String> a ...
- 转换时间戳,兼容webkit和IE
var date="2018-6-6"; var test=Date.parse(date.replace(/-/g,"/"));console.log(tes ...
- Error running 'tomcat': Unknown error
免费分享95套java实战项目,不仅有源码还有对应的开发视频,关注公众号『勾玉技术』回复"95"即可获取 无意中发现了一位清华大佬的算法笔记,需要的加公众号 勾玉技术 回复 清华算 ...
- VMware vSphere 虚拟化平台的安装及使用
首先解释一下这些名词, vSphere是什么? vSphere 是VMware公司发布的一整套产品包,是VMware公司推出的一套服务器虚拟化解决方案,包含VMware ESXi hypervisor ...
- PAT-1145(Hashing - Average Search Time)哈希表+二次探测解决冲突
Hashing - Average Search Time PAT-1145 需要注意本题的table的容量设置 二次探测,只考虑正增量 这里计算平均查找长度的方法和书本中的不同 #include&l ...
- SpringMVC执行流程及源码分析
SpringMVC流程及源码分析 前言 学了一遍SpringMVC以后,想着做一个总结,复习一下.复习写下面的总结的时候才发现,其实自己学的并不彻底.牢固.也没有学全,视频跟书本是要结合起来一起, ...