C++類、結構體、函式、變數等命名規則詳解
程式設計越學越深,也慢慢了解到命名規範的重要性,在前面幾個資料結構的示例中,大家也看到,命名也是有一定的規則的,這會方便我們閱讀程式碼,方便我們後期完善。今天就給大家總結一下常用的C++命名規則。希望對大家有所幫助。
目錄
一、命名規範原則
1、必循遵守的規則
首先是總體的命名規範原則,是我們命名時必須要遵守的,不然程式會出現錯誤。
1、變數名只能是字母(A-Z,a-z)、數字(0-9)或下劃線。
2、第一個字母不能是數字,例如 2L 這不是一個合法的C++變數。
3、不能是c++關鍵字,例如不能用 class 、 int 這些單詞來命名一個變數。
常用C++關鍵字如下,不必死記硬背,多些程式碼,慢慢就熟練了。
asm |
do |
if |
return |
typedef |
auto |
double |
inline |
short |
typeid |
bool |
dynamic_cast |
int |
signed |
typename |
break |
else |
long |
sizeof |
union |
case |
enum |
mutable |
static |
unsigned |
catch |
explicit |
namespace |
static_cast |
using |
char |
export |
new |
struct |
virtual |
class |
extern |
operator |
switch |
void |
const |
false |
private |
template |
volatile |
const_cast |
float |
protected |
this |
wchar_t |
continue |
for |
public |
throw |
while |
default |
friend |
register |
true |
|
delete |
goto |
reinterpret_cast |
try |
有些是我們不常見的,如果不確定是不是,第一種方式是命名的時候,看一下,以VS2015為例,如果我們定義這個變數有特殊顏色,比如藍色
說明這是關鍵字,當然像我們自己定義的有時候也會變色,具體的就看編譯器怎麼設定的了。第二種方式就是先命名,如果報錯,說明這個命名是用了關鍵字。
第三種就是儘量避免不確定的,實在不行用大寫,C++目前的關鍵字均為小寫。
4、區分大小寫,例如iA和ia是兩個不同的變數。
2、儘量做到的規則
不遵守不會錯,但是命名不是很規範。所以這塊沒有標準,只是我自己看的很多程式碼,很多書上講的,然後自己總結。
1、儘量用英文,不用拼音。
2、儘量用少的單詞表達多的意思。雖然長度沒有硬性要求,但是如果一個變數十多個字母還是不好看。有的書上說20字母以內,有個書上說盡量不超過30個字母,個人建議,控制在15個以內,如果英語不太好,大家可以通過變數命名多接觸英語單詞,如果英語水平較高,建議控制在10個以內。
3、有含義的變數或者多處呼叫的變數,儘量用有含義的單詞命名,不要用i,j,k這些單個字母命名。要不然別人看你的程式碼,很難理解變數含義,還容易出錯。
4、定義變數時,可以加上型別字首。比如連結串列變數前面加上L,類前面加上C。
LinkList LL ;//第一個L的含義是連結串列,作為字首,第二個L的含義是變數名稱
class CPerson ;//第一個C的含義是類,作為字首,後面Person的含義是變數名稱
5、同一個程式中,相同型別用同一種命名方法。例如變數用駝峰命名法,那所有的變數都用駝峰命名,類名都要求首字母大寫,那所有的類名首字母都大寫。
二、常用命名法
1、駝峰命名法
指混合使用大小寫字母來構成變數和函式的名字。當變數名或函式名是由一個或多個單詞連結在一起構成的唯一識別字時,第一個單詞以小寫字母開始,從第二個單詞開始以後的每個單詞的首字母都採用大寫字母,例如:myName、myAge,這樣的變數名看上去就像駱駝峰一樣此起彼伏,因此被稱為駝峰命名法。
int *treeBase;
int elemNum;
int treeSize;
2、帕斯卡(Pascal)命名法
也叫大駝峰法,與駝峰命名法類似,不過駱駝命名法是首字母小寫,而帕斯卡命名法是首字母大寫。
int *TreeBase;
int ElemNum;
int TreeSize;
3、匈牙利命名法
匈牙利命名法是由一位能幹的 Microsoft 程式設計師查爾斯- 西蒙尼(Charles Simonyi) 提出的。它通過在變數名前面加上相應的小寫字母的符號標識作為字首,標識出變數的作用域,型別等這些符號可以多個同時使用,基本原則是:變數名=屬性+型別+物件描述。
匈牙利命名法關鍵是:識別符號的名字以一個或者多個小寫字母開頭作為字首;字首之後的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變數的用途。
int *iTreeBase;
int iElemNum;
int iTreeSize;
4、下劃線命名法
與駝峰命名法相似,通過一種方式將不同單詞區分開,方便讀懂變數含義。與駝峰命名法不同的是,駝峰命名法採用的是首字母大寫區分,下劃線命名法是在不同單詞之間新增下劃線。
int *tree_base;
int elem_num;
int tree_size;
三、不同型別常用命名規則
對於C++固有型別,如類,函式,他們有各自的命名規則,當然不同公司有不同公司的命名要求,在這裡說一下大多數要求,大家作為了解。
1、類與物件
類的名稱一般以大寫字母“C”開頭,表明定義的是類,後跟一個或多個單詞。為便於界定,每個單詞的首字母要大寫。類的命名推薦用"名詞"或"形容詞+名詞"的形式。
class CPerson;
class CLittleCat;
2、函式
函式的名稱由一個或多個單片語成。為便於界定,建議採用帕斯卡(Pascal)命名法,即每個單詞的首字母要大寫。
int InitQueue(LinkQueue &LQ) ;
int EnQueue(LinkQueue &LQ, int e);
int DeQueue(LinkQueue &LQ, int &e);
3、變數
變數一般採用駝峰命名法,個人也比較喜歡駝峰命名法。
4、常量、巨集定義和列舉
常量、巨集定義和列舉一般都是所有字母大寫,特別是巨集定義,在不同字母之間,可以加上下劃線,也可以不加。
#define List_INIT_SIZE 100
#define LISTINCREMENT 10
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -1
int LENGTH = 10;
int LIST_MAX_SIZE = 50;
相關推薦
C++類、結構體、函式、變數等命名規則詳解
程式設計越學越深,也慢慢了解到命名規範的重要性,在前面幾個資料結構的示例中,大家也看到,命名也是有一定的規則的,這會方便我們閱讀程式碼,方便我們後期完善。今天就給大家總結一下常用的C++命名規則。希望對大家有所幫助。 目錄 2、函式
C++類 給結構體成員 函式指標 賦值
myStruct標頭檔案 myStruct.h class CMyClass; struct { int nFlag; void (CMyClass::*myinit)(int n); void (CMyClass::*myopen)(int n,void* arg)
結構體(結構體嵌套、結構體指針、結構體參數傳遞)
birt char* 別名 不同的 logs under 情況 計算 調用 結構體(struct) 1、基本概念 結構體-----將不同類型的數據成員組織到統一的名字之下,適用於對關系緊密,邏輯相關、具有相同或不同類型的數據進行處理 2、結構體定義格式 struct 結構名
C++ 類和結構體的對比
我一開始只學習過C語言中的結構體,並且認為C++裡的結構體和C裡的是一樣的,在C++中也一直按照C的方式使用結構體。但我後來發現,C++中的結構體和類在語法上好像沒什麼兩樣,給我造成了很大困惑。究竟C++中的類和結構體有何異同?要解決這個問題,讓我們先從C中的結構體說起。 C語言中的結構體
C++類和結構體的區別
在C中,結構體只能有變數不能有方法。 在C++中,實際上,類與結構的惟一區別在於:在預設狀態下,結構的所有成員均是公有的,而類的所有成員是私有的。除此之外,類與結構是等價的,也就是說,一個結構定義了一
c#類與結構體區別
終於寫到這裡了!下面就是我們大家期待已久的內容了!結構體與類的區別;希望通過我下面的講解,對大家能夠有所幫助,同時文章中有不足之處,大家多多指出哦!感激不盡!!! 這篇主要以程式碼和簡單文字說明來闡述它們的異同之處。 1.關鍵字不同 定義類使用關鍵字cl
C++類和結構體的大小
1、規則(1)空類大小為1,因為C++標準規定空類也可以例項化,每個例項在記憶體中都有一個獨一無二的地址,為了達到這個目的,編譯器往往會給一個空類隱含的加一個位元組,這樣空類在例項化後在記憶體得到了獨一無二的地址。(2)類的大小為非靜態成員資料的型別大小之和,靜態成員存放在全
結構體定義:struct與typedef struct 用法詳解和用法小結
黑體二 三是關鍵 一、typedef的用法 在C/C++語言中,typedef常用來定義一個識別符號及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配記憶體空間,例項像: typedef int INT; typedef int ARRAY[10]; type
【C/C++開發】函式使用結構體、結構體指標作為返回值分析
函式使用結構體、結構體指標作為返回值分析 32位機,gcc編譯器 使用結構體作為返回值 分析反彙編程式碼可知,當被呼叫的子函式返回值為結構體的時候,呼叫函式將分配一段空間用於存放返回的結構體(使用一個結構體變數接受返回值),並將這段空間的地址作為呼叫時的引數壓棧。子程式不負責對要返回的結構體分
C/C++ 指標小結——指標與其它資料型別(陣列、字串、函式、結構體)的關係
一、指標與陣列和字串 1、指標與陣列 當宣告數時,編譯器在連續的記憶體空間分配基本地址和足夠的儲存空間,以容納陣列的所有元素。基本地址是陣列第一個元素(索引為0)的儲存位置。編譯器還把陣列名定義為指向第一個元素的常量指標。 元素的地址是通過索引和資料型別的比例因子來計算的;例如: x[3
C/C++中各種 資料型別、結構體、類 佔用位元組數分析與總結
一、基本資料型別在不同編譯器下佔用位元組數比較與總結,測試過程不詳述了,直接看下錶結論! 下表中右側總結部分是依據佔用位元組數進行著色,同一種顏色型別的資料成員佔用位元組數要麼一致,要麼具有同樣的性質,這樣比較容易理解的記憶。 佔用位元組數
[C/C++常見筆試面試題] 程式設計基礎 - 預處理、結構體與類篇
5 預處理 預處理也稱為預編譯,它為編譯做預備工作,主要進行程式碼文字的替換工作,用於處理#開頭的指令,其中前處理器產生編譯器的輸出。下圖所示為常見的一些預處理指令及其功能。 5.1 C/C++標頭檔案中的ifndef/define/endif的作用有哪些? 如果一個專案中存在兩個C
Android JNI程式設計(六)——C語言函式指標、Unition聯合體、列舉、Typedef別名、結構體、結構體指標
一:函式指標 1.函式指標顧名思義就是定義一個指標變數指向一個函式,和一級指標並沒有很大的區別我們看如下程式碼就很清楚的知道了 #include<stdio.h> #include<stdlib.h> //定義一個函式 in
【03】類、內聯成員函式、結構體、this指標、記憶體、作用域
C++程式的記憶體格局通常分為四個區:全域性資料區(data area),程式碼區(code area),棧區(stack area),堆區(heap area)(即自由儲存區)。全域性資料區存放全域性變數,靜態資料和常量;所有類成員函式和非成員函式程式碼存放在程式碼區;為執行函式而分配的區域性變數、函式引數
Qt C++與QML混合程式設計(2)- QML中使用C++的列舉、結構體、列表型別的函式
C++中返回函式返回的列舉型別、結構體型別、列表型別的函式是不能直接作為QML使用的。下面介紹C++中使用這些型別作為返回值的函式使用。 1. 使用列舉型別 C++的列舉型別如果要在QML中使用,需要在使用Q_ENUMS去修飾這個列舉型別。
C++ 字串 14-- 18.40.結構體與函式 結構體作為函式引數、結構體指標作為函式返回值
#include <iostream> #include <string> using namespace std; /*--------------------------------- 18.40.結構體與函式 結構體作為函式引數、結構體指標作為
C語言:constkeyword、結構體
data con post -s 標簽 初始化 weight 什麽 聯系 前幾節內容的解說,主要是內存地址及指針的分析。這一節解說一下easy混淆的keywordconstant及結構體的知識。 一、constkeyword 1. 字符常量的指針 char const
Swift具體解釋之六----------------枚舉、結構體、類
vbs 元素 zha cannot status popu 錯誤 san more 枚舉、結構體、類 註:本文為作者自己總結。過於基礎的就不再贅述 ,都是親自測試的
11、C語言之結構體和共用體
結構體數組 結構體 float add font sco 規則 student mon 一、結構體 結構體:是一種自定義的構造數據類型 用途:把不同類型的數據組合成一個整體。 結構體類型定義: struct [結構體名] { 類型識
C語言(三 字串、結構體、共用體、輸入輸出)
字串 字串是儲存了一些字元,最後以null(’/0’)結尾的一維字元陣列。 char str[6] = {'h','e','l','l','o','/0'}; char str[ ] = "hello" ; 還有一些字串操作函式: 1、strcpy(s1,s2) 複製s2到s1 2