C語言編碼規範1--文件與目錄 https://blog.csdn.net/RootCode/article/details/93221475
C語言編碼規範 2--排版 https://blog.csdn.net/RootCode/article/details/93222263
C語言編碼規範 3 --註釋 https://blog.csdn.net/RootCode/article/details/93223912
C語言編碼規範 4 --可讀性 https://blog.csdn.net/RootCode/article/details/93226117
C語言編碼規範 5--變量、結構、常量、宏 https://blog.csdn.net/RootCode/article/details/93226847
C語言編碼規範 6--函數 https://blog.csdn.net/RootCode/article/details/93227533
1、文件及目錄的命名規定可用的字符集是[A-Z;a-z;0-9;._-]。
2、源文件名後綴用小寫字母 .c 和.h。
3、文件的命名要準確清晰地表達其內容,同時文件名應該精練,防止文件名過長而造成使用不便。在文件名中可以適當地使用縮寫。
以下提供兩種命名方式以供參考:
(1)各程序模塊的文件命名開頭 2 個消協字母代表本模塊的功能:
如:主控程序爲 mpMain.c,mpDisp.c …
(2)不寫模塊功能標識:
如:主控程序爲 Main.c,Disp.c …
4、一個軟件包或一個邏輯組件的所有頭文件和源文件建議放在一個單獨的目錄下,這樣有利於查找並使用相關的文件,有利於簡化一些編譯工具的設置。
5、對於整個項目需要的公共頭文件,應存放在一個單獨的目錄下(例如:myProject/include)下,可避免其他編寫人引用時目錄太過分散的問題。
6、對於源碼文件中的段落安排,我們建議按如下的順序排列:
- a. 文件頭註釋
- b. 防止重複引用頭文件的設置
- c. #include 部分
- d. #define 部分
- e. enum 常量聲明
- f. 類型聲明和定義,包括 struct、union、typedef 等
- g. 全局變量聲明
- h. 文件級變量聲明
- i. 全局或文件級函數聲明
- j. 函數實現。按函數聲明的順序排列
- k. 文件尾註釋
7、在引用頭文件時,不要使用絕對路徑。如果使用絕對路徑,當需要移動目錄時,必須修改所有相關代碼,繁瑣且不安全;使用相對路徑,當需要移動目錄時,只需修改編譯器的某個選項即可。
例如:
#include “/project/inc/hello.h” /* 不應使用絕對路徑 */
#include “../inc/hello.h” /* 可以使用相對路徑 */
8、在引用頭文件時,使用 <> 來引用預定義或者特定目錄的頭文件,使用 “” 來引用當前目錄或者路徑相對於當前目錄的頭文件。
#include <stdio.h> /* 標準頭文件 */
#include <projdefs.h> /* 工程指定目錄頭文件 */
#include “global.h” /* 當前目錄頭文件 */
#include “inc/config.h” /* 路徑相對於當前目錄的頭文件 */
9、爲了防止頭文件被重複引用,應當用 ifndef/define/endif 結構產生預處理塊。
#ifndef __DISP_H /* 文件名前名加兩個下劃線“__”,後面加 “_H”
#define __DISP_H
...
...
#endif
10、頭文件中只存放“聲明”而不存放“定義”,通過這種方式可以避免重複定義。
/* 模塊 1 頭文件: module1.h */
extern int a = 5; /* 在模塊 1 的 .h 文件中聲明變量 */
/* 模塊 1 實現文件:module1.c */
uint8_t g_ucPara; /* 在模塊 1 的 .h 文件中定義全局變量 g_ucPara */
11、如果其它模塊需要引用全局變量 g_ucPara, 只需要在文件開頭包含 module1.h
/* 模塊 2 實現文件:module2.c */
#include “module1.h” /* 在模塊 2 中包含模塊 1 的 .h 文件 */
......
g_ucPara = 0;
......
12、對於文件的長度沒有非常嚴格的要求,但應儘量避免文件過長。一般來說,文件長度應儘量保持在1000 行之內。