C語言程式設計規範

2021-03-04 00:48:59 字數 4414 閱讀 8966

─── 湖南理工學院創新基地

作者彭巍

目錄1 程式的版式 2

1.1 空行 2

1.2 **行 3

1.3 空格 3

1.4 長行拆分 4

2 程式的注釋 4

3 命名規則 5

3.1 共性規則 5

3.2 建議的簡單命名規則 6

4 表示式和基本語句 6

4.1 運算子的優先順序 6

4.2 if 語句 7

4.3 for語句 7

4.4 switch 語句 7

4.5 goto語句 8

5 函式設計 8

5.1 引數的規則 8

5.2 返回值的規則 8

5.3 其他建議 8

檔案設計 9

板式雖然不會影響程式的功能,但會影響可讀性.程式的板式追求清晰、美觀,是程式風格的重要構成因素。

很多人認為良好的可讀性只是方便其他人,對自己寫程式沒什麼幫助,實際很大程度上可讀性是在幫助自己更方便的檢查程式,消除bug。

規則1-1-1:程式塊要採用縮排風格編寫,縮排的空格數為4個

規則1-1-2:每個函式定義結束之後都要加空行。

規則1-1-3:在乙個函式體內,邏輯上密切相關的語句之間不加空行,其他地方應加空行分隔。

示例:while (condition)

// 空行

void function1statement1;

// 空行空行

void function2if (condition

// 空行

void function3else

空行規則1-2-1:一行**只做一件事情。這樣的好處是容易閱讀,並方便注釋。

示例:如下例子不符合規範

x = a+b; y = c+d; z = e + f;

應寫為:

x = a + b;

y = c + d;

z = e + f;

注意:如 int width, height, depth寬度高度深度

因為變數之間本身關係緊湊,所以沒必要分行,因為不分行更突出了緊湊。

規則1-2-2:if、for、while、do等語句各自佔一行,執行語句不得緊跟其他。不論語句有多少都要加。且「」應該獨佔一行。

示例:如下例子不符合規範。

if (width < height) dosomething();

for (initialization; condition; update)

dosomething();

應寫為:

if (width < heightfor (initialization; condition; update)

dosomethingdosomething();

規則1-3-1:關鍵字之後應留乙個空格。

規則1-3-2:函式名之後不留空格,緊跟「(」,以與關鍵字區別。

示例:void func1(int x, int y, int z良好的風格

void func1 (int x,int y,int z不良的風格

規則1-3-3:「,」之後要留空格,如function (x, y, z)。如果「;」不室是一行的結束符號,其後要留空格。

如:for (initialization; condition; update)

規則1-3-4:賦值操作符、比較操作符、算術操作符、邏輯操作符、位域操作符的前後應加空格。但一元操作符如等前後不加空格。

示例:if ( (a >= b) && (c <= d良好的風格

if ((a>=b)&&(c<=d不良的風格

建議:關係緊密的變數一起初始化或賦值時,建議把等號對齊。

這樣寫顯得更清晰,並突出了關係緊密性。

規則1-4-1: **行最大長度宜控制在70-80個字元以內。**行不要過長,否則眼睛看不過來。

規則1-4-2:長表示式要在低優先順序操作符處拆分成新行,操作符放在新行之首(以便突出操作符)。

示例:if ( (very_longer_v1 >= very_longer_v2)

&& (very_longer_v3 >= very_longer_v4)

&& (very_longer_v5 >= very_longer_v6))

c語言的注釋符有與「//.....」

注釋通常用於:

(1) 版本、版權宣告;

(2) 函式介面說明;

(2) 重要的**行或段落提示。

乙個注釋不詳細的程式過一段時間後不但別人看不懂,自己肯定也會看不懂!

規則2-1:注釋是對「**」的提示,不宜太多也不能太少,注釋語言必須準確、易懂、簡潔。

規則2-2:如果**本來就是清除的,則不必加注釋。否則多此一舉,令人厭煩。

例如: ii 加 1,多餘的注釋

規則2-3:邊寫**邊寫注釋,修改**同時修改注釋,以保證注釋與**的一致性

規則2-4:當**比較長,特別是有多重巢狀時,應當在一些段落的結束處加注釋,便於閱讀。

規則2-5:注釋的位置應與被描述的**相鄰,可以放在**的上方或右方,不可放在下方

注:詳細例子請參考例程:f020測溫

據考察,沒有一種命名規則可以讓所有的程式設計師贊同,程式設計教科書一般都不指定命名規則。但是乙個團隊必須制定一種令大多數專案成員滿意的命名規則,否則,復用前人積累的智慧型和財富會成為一件很複雜的事情,並且也阻礙的專案成員之間的互相交流。比較著名的命名規則當推microsoft公司的「匈牙利」法,該命名規則的主要思想是「在變數和函式名種加入字首以增進人們對程式的理解」.

如所有字元變數均與ch為字首,若是指標變數則追加字首p。

例如:char **i指向字元指標的指標

若採用「匈牙利」命名規則,則應寫成

char **chppi;

可以看出,「匈牙利」法最大的缺點是煩瑣。如此煩瑣的命名會讓絕大多數程式設計師無法忍受。

本節論述的共性規則是被大多數程式設計師採納的,我們應當在遵循這些共性規則的前提下,再擴充特定的規則。

規則3-1-1:名字取的應該要直觀且可以拼讀。標示符最好採用英文單詞或其組合,便於記憶和閱讀。程式中的英文單詞一般不會太複雜,用詞應當準確。

如不要把currentvalue 寫成 nowvalue 或寫成 dangqianzhi。

規則3-1-2:長度沒有限制。一般來說,長名字能更好地表達含義,但並不說名字越長就越好了。單字元的名字也是很有用的,

常見的如:i,j,k,m,n等用做迴圈控制變數、x,y,z做表示座標的變數。

規則3-1-3:命名風格一律採用大寫字母加下劃線方式

例:current_value

規則3-1-4:程式中不要出現僅靠大小寫區分的相似標示符。

如:int x, x // 容易混淆

規則3-1-5 :程式中不要出現標示符完全相同的區域性變數和全域性變數,儘管兩者作用域不同不會發生語法錯誤,但會使人誤解。

規則3-1-6:用正確的反義詞組命名具有互斥意義的變數或函式。

規則3-1-7:變數名字應當使用「名詞」 或 「形容詞 + 名詞」。

例如: float value;

float oldvalue;

float newvalue;

規則3-1-8:函式名字應當使用「名詞 + 動詞」 或 「動詞 + 名字」。

例如: void dds_init();

void init_dds();

規則3-1-9:如果不是邏輯上的確需要編號,應杜絕名字中使用數字編號。

例如:float value1,value2;

應寫成:

float oldvalue, newvalue;

規則3-1-10:常量全用大寫字母。

例如: #define true 1

#define false !true

規則3-2-1: 函式名用大寫字母開頭的單詞組合而成。

例如:void main();

void clkinit(); 或 void clk_init();

規則3-2-2:變數和引數用小寫字母開頭的單詞組成而成。

例如:char *buf; 或 unsigned char i;

規則3-2-3:如果不得已需要全域性變數,這時全域性變數建議加上字首g_(表示global)。

例如:char g_keycode;

規則3-2-4:特殊暫存器一律採用大寫.

例如: float adc0_temp; float adc0_read(void

其他建議:

建議制定一套資料型別,防止由於各種平台和編譯器不同,而產生的型別位元組數差異,方便移植。

例如:typedef unsigned char uint8; /* unsigned 8 bit value */

C語言程式設計規範

編碼規範 1.標頭檔案編碼規範 3 2.函式編寫規範 3 3.識別符號命名與定義 3 3.1通用命名規則 3 3.2 變數命名規則 4 3.3函式命名規則 4 3.4 巨集的命名規則 4 4.變數 4 5.巨集 常量 5 6.質量保證 5 7.程式效率 6 8.注釋 6 9.排版與格式 7 10.表...

C語言程式設計

題目答案知識點評析 填空題請補充函式fun 該函式的功能是 把從主函式中輸入的字串str2接在字串str1的後面。例如 str1 how do str2 you do?結果輸出 how do you do?注意 部分源程式給出如下。請勿改動主函式main和其他函式中的任何內容,僅在函式fun的橫線上...

C 程式設計規範

1.簡介 1 1.1 基本原則 1 1.2 適用範圍 1 1.3 使用常識 1 1.4 參考資料 1 2.組織 2 2.1 專案組織風格 2 2.1.1 專案取名與最終的可執行檔名一致 2 2.1.2 專案目錄設定 2 2.2 整合環境內的專案目錄設定 3 2.3 檔案宣告 3 2.3.1 類宣告與...