第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C ++標識符中使用下劃線有哪些規(guī)則?

在C ++標識符中使用下劃線有哪些規(guī)則?

楊魅力 2019-05-20 16:44:36
在C ++中通常用某種前綴命名成員變量來表示它們是成員變量而不是局部變量或參數(shù)。如果你來自MFC背景,你可能會使用m_foo。我myFoo偶爾也見過。C#(或者可能只是.NET)似乎建議只使用下劃線,如_foo。這是否允許C ++標準?
查看完整描述

4 回答

?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

避免名稱沖突的規(guī)則都是C ++標準(參見Stroustrup書)和C ++大師(Sutter等)提到的。

個人規(guī)則

因為我不想處理案件,并且想要一個簡單的規(guī)則,所以我設(shè)計了一個簡單而正確的個人案例:

命名符號時,如果您符合以下條件,則可避免與編譯器/ OS /標準庫沖突:

  • 永遠不要用下劃線開始一個符號

  • 永遠不要在里面用兩個連續(xù)的下劃線命名。

當然,將代碼放在一個唯一的命名空間中也有助于避免沖突(但不能防止惡意宏)

一些例子

(我使用宏,因為它們是C / C ++符號的代碼污染更多,但它可以是從變量名到類名的任何東西)

#define _WRONG#define __WRONG_AGAIN#define RIGHT_#define WRONG__WRONG#define RIGHT_RIGHT#define RIGHT_x_RIGHT

來自C ++ 0x草案的摘錄

n3242.pdf文件(我希望最終的標準文本類似):

17.6.3.3.2全局名稱[global.names]

某些名稱和函數(shù)簽名集始終保留給實現(xiàn):

- 包含雙下劃線_ _或以下劃線后跟大寫字母(2.12)開頭的每個名稱都保留給實現(xiàn)以供任何使用。

- 以下劃線開頭的每個名稱都保留給實現(xiàn),以用作全局名稱空間中的名稱。

但是也:

17.6.3.3.5用戶定義的文字后綴[usrlit.suffix]

不以下劃線開頭的文字后綴標識符保留用于將來的標準化。

最后一個條款令人困惑,除非您認為如果在全局命名空間中定義,以一個下劃線開頭并后跟一個小寫字母的名稱將為Ok ...


查看完整回答
反對 回復(fù) 2019-05-20
?
Smart貓小萌

TA貢獻1911條經(jīng)驗 獲得超7個贊

至于問題的另一部分,通常將下劃線放在變量名的末尾,以免與內(nèi)部任何內(nèi)容發(fā)生沖突。

我甚至在類和名稱空間內(nèi)執(zhí)行此操作,因為我只需要記住一條規(guī)則(與“在全局范圍內(nèi)的名稱末尾,以及其他地方名稱的開頭”相比)。


查看完整回答
反對 回復(fù) 2019-05-20
  • 4 回答
  • 0 關(guān)注
  • 1259 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號