• ベストアンサー

綺麗なコードとは

C言語において綺麗なコードを書くには、 コメントや書式をどのように書いたら良いのか教えてください。 例えば if(条件){    処理; }else{    処理; } を if(条件){    処理; } else{    処理; } と書いてみるなど。 よろしくお願いします。

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

  • ベストアンサー
noname#29459
noname#29459
回答No.3

プログラミング書法 The practice of Programming, Rob Pike and Brian Kernighan の第1章だけ、でも、マスターしてください。 世の中の、自称プログラマと称する者の8割は、まともな、コメントの書き方を知らないものです。 インデンテーションについては、コーディングガイドラインにあれば、それにしたがう。一番、よくないのは、統一性のない、インデンテーションです。 綺麗なコードとは、思想のある、straight forwardなコードのことです。すなわち、地平線の彼方まで、道がみえているような、見通しのよいコード。 世の中の自称プログラマと称する者の、相当は、これが、出来ません。まぁ、できんから、これだけ、猫も杓子もなんでしょうが。。。

ashiato-li
質問者

お礼

回答ありがとうございます。 早速、購入しようと思います。 回答ありがとうございました。

その他の回答 (3)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

重箱の隅つつきですみません。 > プログラミング書法 The practice of Programming, Rob Pike and Brian Kernighan の第1章だけ、でも、マスターしてください。 邦訳タイトルが違います。 プログラミング作法 http://www.ascii.co.jp/books/books/detail/4-7561-3649-4.shtml まあ プログラム書法 ソフトウェア作法 プログラミング作法 と紛らわしいのが揃ってるんですが。 #前の二つは思い切り古典ですが

ashiato-li
質問者

お礼

訂正をありがとうございます。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

> ~と書いてみるなど。 結果、そのプロジェクトのコーディング規約から外れるのであれば、綺麗でないです。

ashiato-li
質問者

お礼

回答ありがとうございます。 よろしければ、もう少し具体的な例をお願いします。

回答No.1

普通にいわれる、「きれいなコード」には、書式やコメントはそんなに重要ではありません。 下記の URL などをじっくりお読みになることをおすすめします。 『Cプログラミング診断室』 http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html

ashiato-li
質問者

お礼

回答ありがとうございます。 URLを参照させていただきました。 見づらいコードの例とその解説が大変参考になりました。 ありがとうございました。

関連するQ&A

  • Bシェルのif文

    if文の否定について教えてください。 if $aa='xxx' then else echo yyy fi 間違っているかもしれませんが上に書いたことをやろうとしています。 他の言語の if(!($aa='xxx'))echo yyy; をBシェルのif文で書くにはどうしたらいいですか? $aa='xxx'を$aa!='xxx'にするのではなくて、その外側のifの書式を教えてください。 最初に書いたコードでは、if(!条件)を知らないので if(条件) else 処理 endif のように書きました。

  • プログラミングソースコード(アルゴリズム)の条件分岐の記述の仕方

    C言語始め擬似言語等プログラムで条件分岐はif~else以外にないのでしょうか?3つ以上に分岐する場合どのように記述するのでしょう?

  • if文の処理部分の括弧を省略した場合の書き方

    C言語のif文の書き方についてですが、通常 if(条件) { ---処理1------- } else if(条件) { ---処理2------- } else { ----処理3------ } 括弧を使った場合は上のような動作をすると思うのですが、括弧を使った場合、 次のif文の”処理1”部分if((TEST_SENSOR & 0x03) == 0x03)は正常に動作できますでしょうか? コメント文が1行入ってしまうとダメでしょうか? コンパイラはエラーは出しませんでした。 if((TEST_SENSOR & 0x03) == 0x03) //return TEST_ERR; return T_NONE; else if((SENSOR & 0x03) == 0x01) return T_LOCK; else if((TEST_SENSOR & 0x03) == 0x02) return T_UNLOCK; return T_ERR; どうぞ、ご教授頂きますよう、お願い致します。

  • if else文のフローチャート

    c言語です。 if else文のフローチャートを教えてほしいです。 Trueの場合は処理1、Falseの場合は処理2を実行したいです。 最初に条件と書きます。

  • 初歩的なIF文がわかりません

    COBOLでプログラミングをしているのですが 参考書を見ても理解できない部分があります。 IF 条件式-1    処理A    IF 条件式-2       処理B    ELSE       処理C(1)    END-IF ELSE    処理C(2) END-IF. という処理をしたいのですが、 処理C(1)と処理C(2)は全く同じ処理なのですが 同じことを2度書くのではなく 処理C(1)に当てはまる場合は処理C(2)をしてほしいのです。 どのように書けば教えてください

  • Javaでのデバッグコード削除

    Javaで条件分岐などによってコード自体を削除することはできるのでしょうか。 目的はデバッグコードの負荷軽減です。 C言語でいうところの、プリプロセッサのようなことができることが理想です。 例えば、メソッド中に以下のようなコードがあるとします。 ------------------------------------ final boolean DEBUG = true; if (DEBUG) System.out.println("Debug: hogehoge"); ------------------------------------ 上の場合はif文条件分岐の処理負荷が発生すると思います。 この程度であれば低負荷であることは認識していますが、どうも気持ちが悪いです。 例えば、C言語であれば以下のようにしてコンパイル時にコードごと削除することができると思います。 ------------------------------------- #define DEBUG int main(){ #ifdef DEBUG    printf("Debug: hogehoge"); #endif return 0; } ------------------------------------- Javaで上記のようなことを実現することは可能でしょうか。 デバッグコードの削除が目的ですので、仮にこれができなかったとしてもIDEやそのプラグインなどで目的が達せられれば問題ありません。 どなたか解決策をご存知であればご教示願います。

  • phpのコードでこの2つは何が違うんでしょうか?

    phpのコードでこの2つは何が違うんでしょうか? 問題文が画像に書いてあるもので、上のコードは私が考えたもので、下のコードは画像の問題の答えです 私の解いた答え <?php $age = 10; if(10 <= $age < 20){ echo("10代"); }else if(20 <= $age < 30){ echo("20代"); }else if(30 <= $age < 40){ echo("30代"); }else{ echo("それ以外"); } 画像の問題文の正解 <?php $age = 43; if($age >= 10 && $age < 20){ echo("10代"); }else if($age >= 20 && $age < 30){ echo("20代"); }else if($age >= 30 && $age < 40){ echo("30代"); }else{ echo("それ以外"); }

    • ベストアンサー
    • PHP
  • Access テキストボックスの文字色

    チェックボックスにチェックが入っていない場合、テキストボックス内の文字色を赤に、チェックを入れたら黒に、またチェックを外したら赤に、という風にしたいです。 条件付書式で設定した場合、条件を満たしたらすぐには反映されず、一旦別のレコードに移動して戻ってくると反映されています。 VBAのコードで Private Sub 処理_AfterUpdate() If チェックボックス = 0 Then '文字色変更処理 Else '文字色変更処理 End If End Sub のようにすれば出来るのではないかと思うのですが、 文字色変更のコードがわかりません。 どなたか教えてください。

  • ファイルコピーとコードの綺麗な書き方について

    質問です。 特定のファイル名を複数コピーする場合、 理想な処理はなんでしょうか? 1. IF文でファイルを確認してコピー処理 2. *.txtにファイル名を予め書き込んでおいて、   1行づつ読み込んで検索してコピー処理 など…、 コードが綺麗に見えて、尚且つ何処に何があるか オープンソースにした時他人がひと目で分かるような 処理構造とはなんでしょうか? あと If File.Exists("C:\test_A.txt") Then File.Copy("C:\test_A.txt", "D:\test_A.txt", True) Else If File.Exists("C:\test_B.txt") Then File.Copy("C:\test_B.txt", "D:\test_B.txt", True) Else MessageBox.Show("test_B.txt" & vbCr & vbCr & _ "ファイルが見つかりません。再度ダウンロードして下さい", "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End If MessageBox.Show("test_A.txt" & vbCr & vbCr & _ "ファイルが見つかりません。再度ダウンロードして下さい", "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End If と永遠に書いてると、何が何処にあるのか難しいです。 一つ一つの確認に~は無い。~はある場合はコピーというのしたいです。 このIF文も何らかの形で解りやすい処理方法に変更してくれれば 幸いです。 【回答お願い】 1. 最も綺麗に見えて他人からも理解出来て処理が   重くならない方法でコピーするコードを書くには? 2. 上記で記載したIF文を500行ぐらい書いています。   もっと綺麗に書く方法はありますか?

  • C/C++ ソースのコーティングについて

    最近、C/C++ ソースのコーディングに関して興味を持ちました。 そこで質問します。 皆様は普段プログラムを書くときにどんなコーディングをしていますか。 人それぞれ記述が異なると思いますが、何か自分の中でのコーディング・ルールが あれば教えて下さい。できるだけ詳しくお聞きしたいです。 ちなみに私の場合は (1)return、sizeof 演算子には必ず括弧を付けます。 (2)if、else、while、for には必ず{、}のブロックを記述して省略しません。 (3)関数を呼び出すとき、引数と引数はスペースを必ず挿入します。→strcpy( s, t );  ただし、if、while、for の条件式の中ではスペースを入れません。→while ( fgets(buff,sizeof(buff),fp) != NULL ){ … } (4)2項(3項)演算子はスペースを両端に挿入します。→ret = 2 + 3;  単項演算子はスペースは挿入しません。→i++、*str (5)ブロックのインデントは  if ( 条件式 ){   処理  }  else{   処理  } などがあります。 特に詳しく知りたいのは(5)です。 タイプ1 if ( 条件式 ){  処理 } else{  処理 } タイプ2 if ( 条件式 ){  処理 }else{  処理 } タイプ3 if ( 条件式 ) {  処理 } else {  処理 } タイプ4 if ( 条件式 )  {  処理  } else  {  処理  } それではコーディング・ルール(こだわり)などを教えて下さい。 なお、今回の質問は、より見やすいコーディングを目指しての質問です。 よろしくお願いします。

専門家に質問してみよう