• ベストアンサー

関数の書き方について

趣味でプログラムの勉強をしております。 ネットで色々なソースを拝見していると関数の書き方が微妙に異なっているものがあります。 1. int foo(void){ } 2. int foo(void) { } 3. int foo(void) { } 各々のパターンでどのようなメリット・デメリットがあるのかご教示いただければ幸いです。 特に3つ目の関数の型の後に改行をいれる理由がよくわかりません

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

一応、コンパイラ側では違いはないかと。 当人にとって見やすいかどうか? と、 使用するツール類にとって都合がいいかどうか? という問題だと認識していますけどね。 ちなみに、私はif文などのブロック区切りは1.の書き方を好んで使っています。 # ブロックの終了位置が判りやすい。(ブロック内部はインデントしてる) 関数は2.ですけどね。 # 構造体定義では開始の{は行末。基本的に関数の開始の{だけ行頭で、他は文末に置くようにしていますね…。 2.の書き方だと、「行頭の括弧」でブロックの範囲が見やすい。 となります。 使用しているエディタなどで検索する際にも便利でしょう。 # grepする時に行頭に"{"か"}"がある行を抽出とすると、関数の中身を除いた結果が出てくる。 まあ、いろいろなスタイルがある…ということで。 # 複数人で作業する時はコーディング規約などで既定されるパターンがありますね。 # 私の経験では守らない場合が多かったですが…。(各人のスタイルで記述される) 突き詰め過ぎると宗教戦争になりかねないのでほどほどに。 # 昔から出てくるネタなので…Web検索するといろいろ出てくると思いますよ。 # 「コーディング規約 メリット デメリット」辺りで検索でしょうか…。

siffon9
質問者

お礼

ご回答ありがとうございました。 > 使用するツール類にとって都合がいいかどうか? > という問題だと認識していますけどね。 なるほど何らかのツールを使用する場合に、都合の良い書き方があるということですね。 私の場合は勉強で小規模ばプログラムしか書かない為、テキストエディタしか使用していなかったので、思いつきませんでした。 あとはコーディング規約ですか、確かに業務で複数人でソースを買う場合は統一していないとマズいですね。 キーワードのご紹介ありがとうございました、検索してみます。

その他の回答 (1)

回答No.2
siffon9
質問者

お礼

リンクのご紹介ありがとうございました。 リンク先にもデメリットとして書かれている様に、やはり、型で改行するメリットが良く分かりません。 もしかしたら、昔が型で改行したほうが検索などしやすかったのかも知れませんね。 ご回答ありがとうございました。

関連するQ&A