1.4.5 命名規(guī)則保持一致
在代碼中,應采用一致的命名規(guī)則(K&R命名法或匈牙利命名法),而不能混用命名規(guī)則。但是,C代碼更傾向于采用K&R命名法。因此筆者建議,除用于接口的函數(shù)名稱之外,最好在內(nèi)部的實現(xiàn)代碼中統(tǒng)一采用K&R命名法,并避免出現(xiàn)像spName
這樣的命名風格。用于接口的函數(shù)名稱采用匈牙利命名法或者帶有小寫前綴的駝峰命名法具有一定的優(yōu)勢,并且容易把這些接口和系統(tǒng)函數(shù)名或者其他函數(shù)庫的接口名區(qū)分開來,從而在一定程度上避免命名污染。比如常用于解析JSON的開源函數(shù)庫cJSON,其接口定義如下:
/* returns the version of cJSON as a string */ const char* cJSON_Version(void); /* Supply malloc, realloc and free functions to cJSON */ void cJSON_InitHooks(cJSON_Hooks* hooks); cJSON * cJSON_Parse(const char *value); cJSON * cJSON_ParseWithLength(const char *value, size_t buffer_length);
除源代碼中的函數(shù)名、變量名之外,用于組織源代碼的目錄和文件的命名規(guī)則也需要得到重視。下面給出一些常規(guī)建議:
(1)僅使用ASCII可打印字符(文件系統(tǒng)不允許的字符除外),而不要使用中文、表情符號等特殊字符;
(2)使用-
連接多個單詞而避免使用_
,這一點和C代碼中的變量名不同;
(3)使用全小寫的文件名和目錄名。
如此,ordered-map.c
就是合乎上述建議的文件名,而ordered_map.c
就不是合乎上述建議的文件名。