自分用コーディング・命名規約
参考
Linux Kernel Coding Style
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/CodingStyle.html
C++で開発
http://www.02.246.ne.jp/~torutk/cxx/index.html
C++ 移植性ガイド
http://www.mozilla-japan.org/hacking/portable-cpp.html
C and C++ Style Guides
http://www.chris-lott.org/resources/cstyle/
翔ソフトウェア (Sho's) - XP (エクストリーム プログラミング) - C++ コーディング標準
http://www.shos.info/develop/xp/cplusstd.html
Java 言語 コーディング規約 目次
http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/
SDLライブラリコードを書くための手引
http://risky-safety.org/~zinnia/sdl/sourcetour/coding-guide-1.3.j.txt
名前の付け方 - CATchy programming
http://homepage2.nifty.com/cat-chy/cp/naming.html
FreeBSD カーネルスタイルガイド
man 9 style
- 関数宣言は関数名を行頭に
int main(int argc, char* argv[]) { }
単純にかっこいいから。
しかし実際にはこれは守っていない。
- ポインタ型の変数には p をつける
char* m_pFilename;
- ファイル名
fullpath フルパス (e.g. /usr/include/stdio.h) basename 名前+拡張子 (e.g. stdio.h) filename 上のどちらでもよい dirname ディレクトリ名 (e.g. /usr/local/include) extension 拡張子名 (h)
- DLLなどの省略名
全部大文字 ○ HANDLE m_hDLL; × HANDLE m_hDll;
- for ループのインデクス
ネストが2段階までなら変数名にi,jを利用してよい。
3段階以上になったら意味のある名前を使うこと。
- クラスに関して
インターフェイス(すべてのメソッドが純粋仮想関数)は IPlugin などのように I で始める。
インターフェイスでない抽象クラスは 〜Base のように Base をつける。
(Javaなんかでは Abstract〜とするらしい)
- その他
C++において_で始まる名前はコンパイラベンダのために予約されている。
fallthrough を絶対書く。
- 参考サイト
http://www.possibility.com/Cpp/CppCodingStandard.html#names
参考になりそうだったのは
・1ソースに1クラス (1クラスが大きくなりすぎるときは classname_1.cpp classname_2.cpp のように) gcc -DDEBUG=0 のようにするかもしれないから #ifdef DEBUG でなく #if DEBUG とすること。
http://hp.vector.co.jp/authors/VA027568/sp.html
- 引数の数は多くても7個まで