- ベストアンサー
今風(?)のコーディング規約が知りたい
C++ は初心者です。他の言語は結構長くやっております。C は多少経験があります。(が、知識が 10 年くらい前のものです) 趣味で C++ を始めたのですが、仕事や大きなコミュニティ内で使ったことがないために、今現在主流のコーディング規約というかお行儀の良いスタイルの判別が難しいです。ヘッダファイルや Google Codesearch 等で片っ端から色々なソースを見ているのですが結構バラバラなんですよね・・・ 他の言語の経験があるので、switch の最後には何もなくとも default を明確につけとけ みたいなことの有用性はわかるのですが ではなくて、細かいですけど if (hoge) { } なのか if (hoge) { } なのか、とか (自分は下の方が好き) int ←ここで改行する?(自分は改行する) hogeHoge() { ・・・ とか。 多分僕の個人的な好みは大昔にやった C (K&R スタイル?) や長く仕事で使っている Perl の影響が強い気がするので、C++ 的にはどうなのかなと。 変数名や関数名は GNU スタイルなのか キャメルスタイルなのか、キャメルスタイルだったら大文字から始めるのか、関数名だけ大文字から始める人もいれば、関数名も小文字からの人もいるし、enum の定数は全部大文字が普通?とか(きりないですorz)・・・ ハンガリアンはもう推奨されてないというのは理解してます。その理由もなんとなく。でもハンドルは hHoge にするのが普通みたいですし、bool型なら is~ とか can~ とか。人によってはグローバル変数にもプレフィックスつけるようですね。他にもそういうこれはプレフィックスつけるのが普通!ってのがあったら知りたいです。僕自身はめっちゃ長くなっても意味が正確にわかる変数名をつけとけ派なので、プレフィックスにはあまり必要性を感じないです。(英文みたいな変数名とか良くやる) でも、 C++ 長くやると多分考え方が変わるかなあと思うので。 とりあえず以下を読んでますが、それほど間違った選択はしていないでしょうか? http://sec.ipa.go.jp/download/dl.php?filename=report/200606/CMGuide_V1-0.pdf http://www.possibility.com/Cpp/CppCodingStandard.html それはもう古い、今はこういう感じが普通、というのがあったら教えていただけると幸いです。(英語でも構いません) 個人で趣味レベルでやるなら、その程度は好きにしてかまわんでしょう、という意見でも OK です。好きにするんでも一貫したいので、どうせなら良いものを参考にしておきたいとは思ってます。(目的のモノを動かすのに数時間もかからなかったのに、そのコードをお行儀よく書き直そうとして数日も定まらずに何度も書き直したり・・・な状態なので。)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、ピアソン・エデュケーションの『C++ Coding Standards』を読んでみてください。
その他の回答 (1)
- BLK314
- ベストアンサー率55% (84/152)
私は”プログラミング作法"を参考にしています。 http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E4%BD%9C%E6%B3%95-%E3%83%96%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3-%E3%82%AB%E3%83%BC%E3%83%8B%E3%83%8F%E3%83%B3/dp/4756136494 グローバル識別子には長い名称 ローカル識別子には短い名称 for (int Index = 0; Index < n; ++Index) × for (int i = 0; i < n; ++i) ○ 一例です
お礼
ありがとうございます。参考にしてみます。 (No.1 さんのを注文してしまったので二冊すぐというわけには・・・) 一時的なローカル識別子には短い名称、には同意です。 普段、長い名前付けるのはメンバ変数ですね。
補足
表紙を見てなにかう~んと思ってたのですが、この本、知人の職場にあったので少し読んだことがあるような気がします。
お礼
おー こういうのが知りたかったんです。ありがとうございます。もう Amazon で注文しました。ざっと検索した感じ、書評書いてる人の傾向とかから良さを十分感じましたし、値段もお手ごろだったので。 STL にも触れられているようで楽しみです。 (C++ 初めて数時間でやっと STL の存在に気づく→かき直す→STL も色々描き方あるみたいだな→何がお行儀良いのかわっかんねー だったので)