新公司程式設計規範遵循google code style c++。利用了點時間閱讀了一遍,將自認為重要的記錄下來。
1使用#define包含(可以參考部落格《你所不知道的事兒–#ifndef #endif不能防止編譯器將檔案包含兩次》)
格式如下:
___
例如,專案foo中的標頭檔案foo/src/bar/baz.h,可以這樣保護:
#ifndef foo_bar_baz_h_
#define foo_bar_baz_h_
...#endif
2#inlucde路徑:
避免使用unix的.或..
3.使用靜態成員函式或名字空間內的非成員函式,盡量不要使用裸的全域性函式。
4.介面類以inte***ce為字尾。(有純虛函式才能構建介面)
5.除特殊環境外,不要過載運算子。(哈哈,特殊環境就是指的面試吧!!)
6.在類中使用特定的宣告順序:
public在private之前;
成員函式在資料成員之前;
7.按引用傳遞的引數必須加上const
8.以下幾點是對c++一些特性的禁止使用
不允許使用預設函式引數;
禁止使用rtti;
不使用c++異常
9.要使用c++的型別轉換,如static_cast
不使用如下:
int y = (int)x;
int y = int(x);
10.對於迭代器和其他模板物件使用字首形式的自增、自減運算子。
理由是:前置自增 (++i) 通常要比後置自增 (i++) 效率更高。為什麼字首效率高呢?理由是:後置++會生成臨時物件。
11.強烈建議在任何可能的情況下使用const。effective c++中說《 寧以const引用傳遞代替按值傳遞(內建型別除外)》
12.盡可能使用sizeof(varname)代替sizeof(type)。而關於sizeof的詳細用法,部落格《**c++中sizeof操作符的用法》有了介紹。
下面我覺得才是重中之重,命名約定:
13.少用縮寫:
int price_count_reader;
int num_errors;
int num_dns_connections;
14.檔案命名全部小寫:
my_useful_class.cc
my-useful-class.cc
遵循谷歌程式設計規範的,都用.cc結尾,而不是我們之前用的.cpp。
15.(類、結構體、型別定義、列舉)的每個單詞首字母均大寫,而且不包含下劃線:
class
urltable
{};
16.變數名一律小寫,單詞之間用下劃線;而且類的成員變數以下劃線結尾。
string table_name;
string tablename;
class tableinfo;
17.全域性或類裡的常量名前加k,且除去k的每個單詞開頭字母均大寫。
const internet kdaysinweek =7;
18.常規河南省使用大小寫混寫;取值函式和設定值函式要求與變數名匹配。
//常規函式:
addtableentry();
//取值、設定值函式
class myclass
void set_num_entries(int num_entries)
private:
int num_entries_;
};
19.名字空間,用小寫字母,基於專案名稱和目錄結構:
google_awesome_project
最後就是一點關於格式的規範:
20. 每行不超過80
21.盡量不適用非ascii字元,使用時必須用utf-8編碼
22.只是用空格,每次縮排兩個空格,不適用tab
23.關鍵字public protected private要縮排乙個空格
24.一些關於一行寫不下,對齊的問題。
…..
只是簡單看看了,覺得比華為之類的編碼規範要好的多,繼續加油!
谷歌C 程式設計規範(一) 標頭檔案
今天晚上在網上發現了谷歌的c 程式設計規範這個東西,大家貌似都非常推崇的樣子。然後又在網上搜了一下,好像並沒有中文版的。所以,我就打算把它們全都翻譯一遍啦,既能提高自己的英語水平,還有助於養成良好的程式設計風格,何樂而不為呢?哈哈 整個程式設計規範包括九個部分,所以就分成九篇文章來寫啦。本篇文章主要...
c 程式設計規範學習筆記(二)
一次只解決乙個問題 只給乙個實賦予乙個定義良好的職責。軟體簡單為美 正確優於速度,簡單優於複雜,清晰優於技巧。使用靈活 動態分配的資料,不要使用固定大小的陣列 了解演算法的實際複雜度 優先使用線性演算法或盡可能快的演算法 盡可能避免劣於線性複雜度的演算法 永遠不要使用指數複雜度的演算法,除非你別無選...
C 程式設計規範
關於組織和策略問題 0 不要拘泥於小節 了解哪些東西不應該標準化 類 函式和列舉 likethis 變數名 likethis 私有成員變數名 likethis 巨集名稱 like this。1 在高警告級別乾淨利落地進行編譯 2 使用自動構建系統 3 使用版本控制系統 最廉價也最流行的版本控制系統是...