很多編程者要么完全忽略關鍵字const的作用,要么認為它用處不大。其實不然,關鍵字const的首要功能是通過類型檢查幫助編譯器查找程序中(更多)的錯誤:其次是借助編譯器強迫代碼符合最初的設計:另外,在設計可復用的代碼時關鍵字const也很重要。
原則1: 關于常量修飾符的含義
?例子
char* p="Hello"; // 指針不是常量,指針指向的也不是常量
char const *p="Hello"; // 指針不是常量,指針指向的是常量
char* const p="Hello"; // 指針是常量,指針指向的不是常量
char const * const p="Hello"; // 指針是常量,指針指向的也是常量
?說明
“char* p”的意思是:p是一個指針;它指向字符類型。
“char const* p”的意思是:p是一個指針;它指向一個常量;該常量是字符類型。
“char* const p”的意思是:p是一個常量;它是一個指針常量;該常量指針指向字符類型。
“char const* const p”的意思是:p是一個常量;它是一個指針常量;該常量指針指向一個常量;而被指向的常量是字符類型。
原則2: 在設計函數原型時,對那些不可能被修改的參數用常量修飾
?說明
此處參數指的是指針或引用類型。
?例子
void blockCopy (void* pDest,const void* pSrc,size_t length);
原則3: 不要將常量強制轉換成非常量
原則4: 任何變量首選用const?修飾
?說明
經過以上的討論可以看出,先嘗試用const修飾是一種明智的選擇。
以下規則概述常量的命名指南:
所有單詞大寫,多個單詞之間用 "_" 隔開。 如
public const string PAGE_TITLE = "Welcome";
- 第一章 概述
- 1.1規范制定原則
- 1.2 術語定義
- 1.3 文件命名組織
- 1.3.1文件命名
- 1.3.2文件注釋
- 第二章 編碼風格
- 第三章 注釋
- 3.1 注釋概述
- 3.2 文檔型注釋
- 3.3 類c注釋
- 3.4 單行注釋
- 3.5 注釋標簽
- 第四章 聲明
- 4.1每行聲明數
- 4.2初始化
- 4.3位置
- 4.4類和接口的聲明
- 4.5字段的聲明
- 第五章 命名規范
- 5.1命名概述
- 5.2大小寫規則
- 5.3縮寫
- 5.4命名空間
- 5.5類
- 5.6接口
- 5.7屬性 (Attribute)
- 5.8枚舉 (Enum)
- 5.9參數
- 5.10方法
- 5.11屬性 (property)
- 5.12事件
- 5.13 常量 (const)
- 5.14 字段
- 5.15 靜態字段
- 5.16 集合
- 5.17 措詞
- 第六章 語句
- 6.1每行一個語句
- 6.2 復合語句
- 6.3 return 語句
- 6.4 if、 if-else、if else-if 語句
- 6.5 for、foreach 語句
- 6.6 while 語句
- 6.7 do - while 語句
- 6.8 switch - case 語句
- 6.9 try - catch 語句
- 6.10 using 塊語句
- 6.11 goto 語句
- 第七章 函數與類
- 第八章 內存分配和釋放
- 第九章 兼容性
- 第十章 控件命名規則
- 10.1 命名方法
- 10.2 主要控件名簡寫對照表
- 附錄一: 匈牙利命名法