Google C++スタイルガイド学習ノート
3627 ワード
1.define保護/
Tip
すべてのヘッダファイルは、#defineを使用してヘッダファイルが複数含まれることを防止する必要があります.名前付きフォーマットは、__H_
一意性を保証するために、ヘッダファイルの命名は、所在するプロジェクトのソースコードツリーの全経路に基づいなければならない.例えば、プロジェクトfooのヘッダファイルfoo/src/bar/baz.hは、以下のように保護することができる.
Tip
すべてのヘッダファイルは、#defineを使用してヘッダファイルが複数含まれることを防止する必要があります.名前付きフォーマットは、
一意性を保証するために、ヘッダファイルの命名は、所在するプロジェクトのソースコードツリーの全経路に基づいなければならない.例えば、プロジェクトfooのヘッダファイルfoo/src/bar/baz.hは、以下のように保護することができる.
#ifndef FOO_BAR_BAZ_H_
#define FOO_BAR_BAZ_H_
…
#endif // FOO_BAR_BAZ_H_
2. ¶
Tip
, : , .
C/C++ , , / . const , / -const . , . , ; .
. / ( / ) , , .
3. ¶
Tip
, : , .
C/C++ , , / . const , / -const . , . , ; .
. / ( / ) , , .
4. #include ¶
Tip
, : C , C++ , .h, .h.
-
, UNIX . ( ) .. ( ). , google-awesome-project/src/base/logging.h :
-
#include “base/logging.h”
えばdir/foo.ccの な はdir 2/foo 2を またはテストすることである.hの 、foo.ccに まれるヘッダファイルの は の りである.- dir2/foo2.h( 、 は の り)
- Cシステムファイル
- C++システムファイル
- のライブラリの.hファイル
- プロジェクト .hファイル
このようなソート は、 を に することができる. ヘッダファイルが してコンパイル であることを む(yospaly :すなわち、ヘッダファイル に な な がすべて まれている) も な は、それを にすることである.hファイル#includedは する.cc.
dir/foo.ccとdir 2/foo 2.hは、 、 じディレクトリ(base/basictypes_unittest.ccやbase/basictypes.hなど)の にあるが、 なるディレクトリの に くこともできる.
アルファベット にヘッダファイルに ソートを めるのはいいアイデアです(yospaly : はヘッダファイルのカテゴリ にソートしていました).
えば、google-awesome-project/src/foo/interna l/fooserver.ccの は の りである.#include "foo/public/fooserver.h" //
#include <sys/types.h>
#include <unistd.h>
#include <hash_map>
#include <vector>
#include "base/basictypes.h"
#include "base/commandlineflags.h"
#include "foo/public/bar.h"