【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现在 ...
随机推荐
- JavaScript Inheritance All in One
JavaScript Inheritance All in One constructor inheritance prototype chain inheritance "use stri ...
- go语言第一天(变量与基本类型)
第一个go程序: //导入主函数的包package main//fmt format 包含格式化输入输出import "fmt"//注释 注释不参与程序编译 可以帮助可以程序//行 ...
- Java volatile 关键字底层实现原理解析
本文转载自Java volatile 关键字底层实现原理解析 导语 在Java多线程并发编程中,volatile关键词扮演着重要角色,它是轻量级的synchronized,在多处理器开发中保证了共享变 ...
- VUE实现富文本编辑以及组件传值的使用总结
VUE实现使用富文本编辑,如下图: 实现这个富文本编辑需要以下步骤: 第一步:安装编辑器组件 npm install vue-quill-editor –-save第二步:创建一个Ue.vue的文件, ...
- SpringBoot2.2.5整合ElasticSearch7.9.2
1:前言 为什么是SpringBoot2.2.5,不是其他的SpringBoot版本,原因有两个: 1:SpringBoot2.2.0以上才能支持ElasticSearch7.x版本. 2:Sprin ...
- CentOS7安装ZooKeeper3.4.14
1:下载安装包 wget https://downloads.apache.org/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 点击进入官网下 ...
- docker ssh秘钥免密登录
一.概述 有一台跳板机,已经实现了免密登录后端服务器.但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器. 虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置 ...
- Jmeter的脚本参数化
一.变量 Jmeter中的变量用法:${变量名称} 变量定义:两种 1.用户定义变量 User Defined Variables 2.用户参数 User Parameters 1.1用户定义变量 ...
- GDB调试:从入门到入土
GDB是类Unix操作糸统下使用命令行调试的调试软件,全名GNU Debugger,在NOI系列竞赛使用的NOI Linux系统中起很大作用(如果不想用毒瘤Guide或直接输出)(XXX为文件名) 1 ...
- 关于使用C3P0程序报错Having failed to acquire a resource, com.mchange.v2.resourcepool的问题
由于是新手的问题,C3P0的使用时严格跟着视频来的,但是问题却来的很突然 在导入了三个包以及创建了路径以后 进行测试 class JdbcutilsTest { @Test void TestGetC ...