自分用コーディング・命名規約

参考

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個まで

IBMの研究によれば、引数が7個を超えるとプログラマのミスが急増するらしい。