程式設計規範(記住!)

2021-04-27 20:05:37 字數 2505 閱讀 6842

下面都清楚嗎?

陣列-->指標陣列-->函式指標陣列

指標-->陣列指標

指標 -->函式指標

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

【建議1-2-2】標頭檔案中只存放「宣告」而不存放「定義」,即不要在標頭檔案定義變數等

【建議1-2-3】對於全域性變數,在c檔案定義,在標頭檔案中extern int g_value 這類宣告,其他檔案包含該標頭檔案即可。

【建議1-2-3】巨集定義重新定義變數型別,如下,好處簡單,而且長度易懂不會錯

#ifndef u8

#define u8                        unsigned char

#endif

#ifndef s8

#define s8                        char

#endif

#ifndef u16

#define u16                       unsigned short

#endif

#ifndef s16

#define s16                       short

#endif

#ifndef u32

#define u32                       unsigned long

#endif

#ifndef s32

#define s32                       long

#endif

【規則3-1

】類名和函式名用大寫字母開頭的單詞組合而成。例如:

c1ass cnode;//

類名void draw( void);//

函式名void setvalue( int value);//

函式名【規則

3-2】變數和引數用小寫字母開頭的單詞組合而成。例如:

bool f i ag ;

int  drawmode;

【規則3-3】常量全用大寫的字母,用下劃線分割單詞。例如:

const int max=100;

【規則3-4

】靜態變數加字首

s_(表示

static ) 例如

: static int s_initvalue; //

靜態變數

【規則3-5

】如果不得已需要全域性變數,則使全域性變數加字首

g_(表示

global) 例如

: int g_howmanypeople;//

全域性變數

【規則3-6

】類的資料成員加字首

m_(表示

member)

,這樣可以避免資料成員與

成員函式的引數同名。例如:

void cbject::setvalue( int width, int height)

【規則4-3-1】不可將布林變數直接與true、false 或1、0 進行比較。

假設布林變數名字為flag,它與零值比較的標準if 語句如下:

if (flag) // 表示flag 為真

if (!flag) // 表示flag 為假

【規則4-3-4】應當將指標變數用「==」或「!=」與null 比較。

if (p == null) // p 與null 顯式比較,強調p 是指標變數

if (p != null)

【規則5-1-1】 盡量使用含義直觀的常量來表示那些將在程式中多次出現的數字或字串。對於程式的常量(除了一些迴圈長度),都不要直接寫在程式中,應該事先定義出來)

例如:#define max 100 /* c 語言的巨集常量 */

const int max = 100; // c++ 語言的const 常量

const float pi = 3.14159; // c++ 語言的const 常量

【規則6-1-2】引數命名要恰當,順序要合理。

引數的順序要遵循程式設計師的習慣。一般地,應將目的引數放在前面,源引數放在後面。

void stringcopy(char *strdestination,const char *strsource);

【規則6-1-3】如果引數是指標,且僅作輸入用,則應在型別前加const,以防止該指標在函式體內被意外修改。

void stringcopy(char *strdestination,const char *strsource);

補充:

(1)不要定義unsigned int 和 int 變數,因為這兩個變數在微控制器和arm的長度不一致

(2)某模組提供給其它模組呼叫的外部函式及資料需在

.h中檔案中冠以

extern

關鍵字宣告;(

3)模組內的函式和全域性變數需在

.c檔案開頭冠以

static

關鍵字宣告; (

4)永遠不要在

.h檔案中定義變數!

程式設計命名規範之 Google C 程式設計命名規範

大一的時候曾經特別關注過命名規範的問題,並且寫了乙個部落格總結了一些基礎的規範 三種程式設計命名規範 後來得知有一種命名規範叫做 go ogle c goo glec 命名規範的時候,特意看了一下,但是特別反感,感覺太糟糕了,所以就沒有深究過 我討厭壓行,這是我反感這個規範的最大原因。不過,現在我不...

SQL程式設計規範

一 sql書寫規範 二 書寫優化效能建議 三 其他經驗性規則 一 sql書寫規範 1 sql語句的所有表名 欄位名全部小寫,系統保留字 內建函式名 sql保留字大寫。2 連線符or in and 以及 等前後加上乙個空格。3 對較為複雜的sql語句加上注釋,說明演算法 功能。注釋風格 注釋單獨成行 ...

SQL 程式設計規範

一 sql書寫規範 二 書寫優化效能建議 三 其他經驗性規則 一 sql書寫規範 1 sql語句的所有表名 欄位名全部小寫,系統保留字 內建函式名 sql保留字大寫。2 連線符or in and 以及 等前後加上乙個空格。3 對較為複雜的sql語句加上注釋,說明演算法 功能。注釋風格 注釋單獨成行 ...