Visual Studio C++指針靠前靠后的問題全面解析
本文地址:https://www.cnblogs.com/oberon-zjt0806/p/14631149.html
甜咸之爭
經(jīng)常寫C++的基本上避不開使用指針,而且C++中指針類型的寫法大體上有兩種:
int* a = nullptr; //*靠前 int *b = nullptr; //*靠后
都是聲明一個指針。
關(guān)于哪種寫法的傾向性,每個人都不太一樣,有的往前放,有的往后放,還有的👴愛放哪放哪,你管得著嘛。
《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; // 錯誤!不讓這么寫。 }
我倒是不關(guān)心C#怎么寫,但是在C++的語境下,我贊同《C++ Primer》的觀點,喜歡往后放,但是VS就像個傲嬌一樣,分號一敲完就把我剛寫好的int *a
變成了int* a
。
難道甜和咸就不共戴天了么??
當然不是,對于C++代碼,VS默認狀態(tài)下使用的是Clang-Format方案。
Clang-Format將這個問題稱為指針對齊,使用PointerAlignment
設(shè)置,其實聽說Clang默認是Right
的。不過在Clang-Format配置文件中VS默認將PointerAlignment
置為Left
。
當然,我們倒沒必要把VS的Clang-Format配置文件拎出來暴打一頓塞回去,VS其實允許我們手動設(shè)置這個風格,步驟如下:
1.菜單欄→工具→選項
,打開選項窗口
2.左側(cè)搜索“格式”然后找到箭頭所指的項(或者在左側(cè)直接按樹找文本編輯器→C/C++
)
3.依次往下找,代碼樣式→格式設(shè)置→間距
,然后在右側(cè)找運算符的間距→指針/引用對齊方式
下面有四個選項,你就可以設(shè)置成你prefer的方式,然后在下面看預覽效果觀察*
和&
的位置,確定就好了
這樣,VS就不會執(zhí)拗地把*
往前放了。
類似地,關(guān)于其他運算符的設(shè)置方法也可以在這個上下文中進行,因此這個位置值得記錄一下,畢竟恰當設(shè)置可以提升開發(fā)效率,這個設(shè)置的位置又比較隱蔽容易迷路,所以特此記錄一下。
到此這篇關(guān)于Visual Studio C++指針靠前靠后的全面解析的文章就介紹到這了,更多相關(guān)Visual Studio C++指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- visual studio 2019安裝配置可編寫c/c++語言的IDE環(huán)境
- 如何使用visual studio2019創(chuàng)建簡單的MFC窗口(使用C++)
- Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程
- Visual Studio Code配置C、C++環(huán)境并編寫運行的方法
- Visual Studio(VS2017)配置C/C++ PostgreSQL9.6.3開發(fā)環(huán)境
- 使用Visual Studio 2017作為Linux C++開發(fā)工具
- 在Visual Studio上構(gòu)建C++的GUI框架wxWidgets的開發(fā)環(huán)境
相關(guān)文章
詳解C++編程中向函數(shù)傳遞引用參數(shù)的用法
這篇文章主要介紹了詳解C++編程中向函數(shù)傳遞引用參數(shù)的用法,包括使函數(shù)返回引用類型以及對指針的引用,需要的朋友可以參考下2016-01-01Visual?Studio下Eigen庫環(huán)境配置方式
這篇文章主要介紹了Visual?Studio下Eigen庫環(huán)境配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12C++實現(xiàn)百度坐標(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換
這篇文章主要為大家詳細介紹了C++實現(xiàn)百度坐標(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換的方法,文中的示例代碼講解詳細,希望對大家有所幫助2023-03-03