函式名,變數名和檔名應該是描述性的,要避免縮寫。型別和變數應該是名詞,函式名應該是帶有命令式的動詞。
how to name
盡可能給出乙個描述性的合理的名字。不要擔心節省水平空間,因為這並遠遠不及使得你的**讓新讀者容易讀懂重要。以下都是好的命名:
int num_errors; // good.
int num_completed_connections; // good.
不好的命名用了不傳遞任何含義的模糊的縮寫或者任意的字元。
int n; // bad -meaningless.
int nerr; // bad - ambiguousabbreviation.
int n_comp_conns; // bad - ambiguous abbreviation.
型別和變數名通常應該是名詞,例如,fileopener, num_errors.
函式名通常應該是帶有命令式的:例如,openfile(), set_num_errors()。取值函式例外。
abbreviations
不要用縮寫,除非它們是眾所周知的。例如:
// good
// these show proper names with noabbreviations.
int num_dns_connections; // most people know what "dns"stands for.
int price_count_reader; // ok, price count. makes sense.
// bad!
// abbreviations can be confusing orambiguous outside a small group.
int wgc_connections; // only your group knows what this standsfor.
int pc_reader; // lots of things can be abbreviated"pc".
不要用省掉字母的縮寫方式:
int error_count; // good.
int error_cnt; // bad.
檔名應該是都是小寫,可以包含下劃線(_)或者破折號(-)。按照你的專案中使用的慣例。如果沒有一致的模式,最好用「_」.。
以下例子都是可以接收的檔名:
my_useful_class.cc
my-useful-class.cc
myusefulclass.cc
myusefulclass_test.cc // _unittest and _regtest are deprecated.
c++原始檔應該是 .cpp,標頭檔案應該是 .h結尾。
不要用存在 於/usr/include中的檔名,如 db.h。
一般的,你的檔名應該是很具體。例如,用http_server_logs.h 而不是 logs.h。通常情況下是有成對的檔案,如用foo_bar.h和foo_bar.cpp定義類foobar。
內聯函式必須是房子 .h檔案。如果你的內聯函式很短,可以直接放在 .h檔案。然而,如果你的內聯函式有很多**,則應該放在以–inl.h結尾的第三個檔案。如果乙個類有很多內聯**,則你的類應該有三個檔案:
url_table.h // the class declaration.
url_table.cc // the class definition.
url_table-inl.h // inline functions that include lots ofcode.
型別名開頭和每個新單詞的首字母為大寫,而且不帶下劃線:myexcitingclass, myexcitingenum.
所有型別名:class,struct,typedefs和enum都有相同的命名規則。型別名開頭和每個新單詞的首字母應該為大寫,而且不帶下劃線
// classes and structs
class urltable
void set_num_entries(int num_entries)
private:
intnum_entries_;
對於其他很簡短的內聯函式名你也可能用小寫。例如,如果乙個函式代價不高,當你在迴圈裡呼叫它可能不存在值,那麼用小寫字母的函式名是可以接受。
命名空間名字都是小寫,並且一句專案名和專案目錄結構:google_awesome_project
列舉名要麼像常量,要麼像巨集一樣: kenumname 或 enum_name
最好,單獨的列舉命名應該跟常量一樣。然而,跟巨集命名一樣也是可以接受的。列舉名 ,urltableerrors,是乙個型別,所以大小寫混合。
enum urltableerrors {
kok= 0,
kerroroutofmemory,
kerrormalformedinput,
enum alternateurltableerrors {
ok= 0,
out_of_memory = 1,
malformed_input = 2,
直到2023年1月,列舉值命名風格還是跟巨集一樣。這引起了列舉值和巨集的命名衝突。因此,形成一致的命名風格還在實施中。新的**應盡可能用不變的命名風格。然而,也沒有理由改變舊的**用新的命名風格,除非就的名字實在引發了編譯問題。
你不是真的需要定義乙個巨集。如果真的需要,可以像這樣定義: my_macro_that_scares_small_children
通常不應該用巨集。然而,如果絕對需要,巨集名應該是由大寫字母和下劃線組成。
#define round(x) ...
#define pi_rounded 3.0
如果你定義乙個和已經存在的c或者c++實體類似的實體,你可以遵循已經存在的實體的命名方式。
bigopen()
function name, follows form of open()
uint
typedef
bigpos
struct or class, follows form of pos
sparse_hash_map
stl-like entity; follows stl namingconventions
longlong_max
a constant, as in int_max
Google對外發布C 編碼規範
csdn.net簡訊 早已開放多時的google c 編碼規範這幾天引起了業內開發人員的廣泛關注。其中,來自矽谷的柯化成認為,這是地球上最好的乙份c 程式設計規範,沒有之一,建議廣大國內外it人員研究使用。盛大的資深開發者趙劼表示,非常同意。google在這方面下足了功夫,讓所有人寫出來的 都使用同...
C 31 Google編碼規範 示例
看了google編碼規範,做了一些整理與示例。檔名 變數名 小寫 可拼接 類名 函式名 常量 首字母大寫。巨集 列舉 全大寫。myclassfile.h 1.檔名 小寫 有 線或者 與類名對應 myclassfile.cpp my class file.cpp myclassfile.h 2.類名 ...
php 編碼規範哪些 php編碼規範
1.php 必須以完整的形式來定界 即不要使用php 短標籤 且保證在關閉標籤後不要有任何空格。2.當乙個字串是純文字組成的時候 即不含有變數 則必須總是以單引號 作為定界符。例如 a example string 3.變數替換中的變數只允許用 變數名 的形式。例如 greeting hello n...