c程式設計規範

2021-07-24 11:16:59 字數 1862 閱讀 9035



c/c++ 程式設計規範

1.檔案結構

每個c++/c 程式通常分為兩個檔案。乙個檔案用於儲存程式的宣告(declaration), 稱為標頭檔案。另乙個檔案用於儲存程式的實現(implementation),稱為定義(definition) c++/c 程式的標頭檔案以「.h」為字尾,c 程式的定義檔案以「. c」為字尾,c++程式的定義檔案通常以「.cpp」為字尾(也有一些系統以「.cc」或「.cxx」為字尾)。

1.1 版權和版本的宣告

版本標識:採用 《主版本號》.《次版本號》.《修訂號》 來命名自己產品的編號。linux 核心還有乙個

約定,就是如果次版本號是偶數(如0、2、4等),代表正式版本,如果次版本號是奇數(如1、3、5等),代表的是開發過程中的測試版本。修訂號則相當於 build 號,用來標識一些小的改動。

1.2 標頭檔案的結構

標頭檔案由三部分內容組成:

(1) 標頭檔案開頭處的版權和版本宣告(參見示例1-1 )。

(2) 預處理塊。

(3) 函式和類結構宣告等。

假設頭檔名稱為graphics.h,標頭檔案的結構參見示例1-2 。

【規則1-2-1】為了防止標頭檔案被重複引用,應當用ifndef/define/endif 結構產生預處理塊。

【規則1-2-2】 用#include 格式來引用標準庫的標頭檔案(編譯器將從標準庫目錄開始搜尋)。

【規則1-2-3】用#include 「filename.h」 格式來引用非標準庫的標頭檔案(編譯器將從使用者的工作目錄開 始搜尋)。

【建議1-2-1】標頭檔案中只存放「宣告」而不存放「定義」

【建議1-2-2】不提倡使用全域性變數,盡量不要在標頭檔案中出現象extern int value 這類宣告。

// 版權和版本宣告見示例1-1,此處省略。

#ifndef graphics_h // 防止graphics.h 被重複引用

#define graphics_h

#include // 引用標準庫的標頭檔案

…#include 「myheader.h」 // 引用非標準庫的標頭檔案

…void function1(… ); // 全域性函式宣告

…class box // 類結構宣告

;#endif

示例1-2 c++/c 標頭檔案的結構

1.3 定義檔案的結構

定義檔案有三部分內容:

1) 定義檔案開頭處的版權和版本宣告(參見示例1-1 )。

2) 對一些標頭檔案的引用。

3) 程式的實現體(包括資料和**)。

假設定義檔案的名稱為graphics.cpp,定義檔案的結構參見示例1-3 .

// 版權和版本宣告見示例1-1,此處省略。

#include 「graphics.h」 // 引用標頭檔案

…// 全域性函式的實現體

void function1(… )

// 類成員函式的實現體

void box::draw(...)

示例1-3 c++/c 定義檔案的結構

1.4 目錄結構

如果乙個軟體的標頭檔案數目比較多(如超過十個),通常應將標頭檔案和定義檔案分別儲存於不同的目錄,以便於維護。

例如可將標頭檔案儲存於include 目錄,將定義檔案儲存於source 目錄(可以是多級目錄)。

如果某些標頭檔案是私有的,它不會被使用者的程式直接引用,則沒有必要公開其「宣告」。為了加強資訊隱藏,這些私有的標頭檔案可以和定義檔案存放於同乙個目錄。

2. 程式版式

2.1 空行

C 程式設計規範

關於組織和策略問題 0 不要拘泥於小節 了解哪些東西不應該標準化 類 函式和列舉 likethis 變數名 likethis 私有成員變數名 likethis 巨集名稱 like this。1 在高警告級別乾淨利落地進行編譯 2 使用自動構建系統 3 使用版本控制系統 最廉價也最流行的版本控制系統是...

C 程式設計規範

c coding standards 101 rules,guidelines,and best practices 組織及策略上的問題 organizational and policy issues 0.不拘小節 或 了解什麼不需要被規範化 1.在高警告級別下乾淨地編譯。2.使用自動化的構建 b...

《C 程式設計規範》

1 使用編譯器的最高警告級別,成功的構建應該是無聲無息的 沒有警告的 如果確定是無害警告,且是無法修改的第三方標頭檔案引起的,可以用自己的標頭檔案包裝起來,並有選擇性的關閉警告,然後專案中使用該標頭檔案。pragma warning push 僅禁用此標頭檔案 pragma warning disa...