谷歌C 程式設計規範筆記

2021-07-05 19:39:27 字數 2222 閱讀 2602

新公司程式設計規範遵循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 使用版本控制系統 最廉價也最流行的版本控制系統是...