- 1 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:38:08 ]
- 言語の入門者向け解説スレです。
教えて欲しいのではなく宿題を丸投げしたいならこちらへ。 C/C++の宿題を片付けます 108代目 pc11.2ch.net/test/read.cgi/tech/1211980711/ ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・開発環境や動作環境も晒すと答えが早いかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 29 pc11.2ch.net/test/read.cgi/tech/1212329099/ 過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
- 413 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:39:07 ]
- >>409
その関数が非常に高コストで、その判定部がループの中にあるなら よくないなあとは思うけど、そうでないなら別に気にしない。 その友達がプロで怒られた経験があるのであれば、もう少し細かい 理由を教えてもらえばいいんでない?
- 414 名前:デフォルトの名無しさん [2008/06/18(水) 23:40:21 ]
- ほかにも使うというのは
x=add(n); if(x==1) if(x==2) みたいな感じですか? あとプログラマーみたいな人たちの間ではどちらが主流なんでしょうか?
- 415 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:40:54 ]
- ちなみに、プロになれば周りのコードにあわせるということのほうが大事。
優劣をつけられない記法の差において、俺はこうすべき!って一人で 走ってるなら怒る。
- 416 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:40:58 ]
- >>409
その友達がどの程度のプロなのかはこの際置いておくとして、どちらがいいとか悪いとか言うことはない。 明確なことは、前者は変数を一つ使用し、後者は使用しないということである。 add() の返す値をただ一回しか評価しないのなら、後者のように書いて何の問題もない。 値を何度も評価するのなら、前者のように一時変数に格納する必要があるか、なくても効率がいいかもしれない。 後は単なる好みの問題である。
- 417 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:41:32 ]
- 文脈によるがこの場合はどちらでもいい。
ところでこのお題はホントはこうじゃなかった? x = add(n) ; if (x == 1) と if ((x = add(n)) == 1) の比較。
- 418 名前:デフォルトの名無しさん [2008/06/18(水) 23:42:40 ]
- >>413
友達はプロではありません 普通に大学生なので… 多分趣味でやってる程度だと思います。 どこで習ったかはわかりませんが
- 419 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:43:35 ]
- 値を使い回したい場合に変数に入れるのは当然として、
そうでない場合はメリットとデメリットがあるので好きにすればいいと思うよ。 ○ メリット ・ 関数呼び出しが長い場合、読みやすくなる ・ デバッグ時に戻り値が何だったか分かりやすい ○ デメリット ・ その場でしか使わないような無駄な変数が広いスコープ上に現れてしまう場合もある
- 420 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:44:20 ]
- 慣用句的なもの
if ((fp = fopen(〜)) == NULL) Is系のメソッドに代表される真偽返却メソッド if (isalnum(〜)) これ以外は大抵分けて書くようにしてるね。 多少冗長に思えても、他の人が読みやすいか、また、 誤解を与えにくい書き方になっているか、それを重視してる。
- 421 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:55:16 ]
- 誤解を与えにくいように、というのはあまりメジャーではない二項演算子を
使う時などに、冗長ではあるが、括弧をつけて明示するようなことね。 ちゃんと知ってればその括弧が無くても正しく動作する事は理解できるが、 うろ覚えの人でも勘違いを起こさない。 もしかしたら研修明けの新人がメンテするかもしれないし。
|

|