[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 20:08 / Filesize : 94 KB / Number-of Response : 422
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 30



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

401 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:33:36 ]
>>382
有限長の文字列を総当りで生成して、それをコンパイルしていくプログラムを作れば
そのうち自分が作りたかったプログラムが自動生成されるんじゃね?

402 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:35:19 ]
>>401
すっげぇ頭いいなおまえw

403 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:36:59 ]
そして自分が作りたかったプログラムかどうかを
判定するプログラムが要るという話になるんですね分かります

404 名前:デフォルトの名無しさん [2008/06/18(水) 21:44:13 ]
故意はかんべん

405 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:44:54 ]
なんだこのviper的なノリはwww

406 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:28:54 ]
>>389
どうしても分からないなら資格取れるわけないじゃん
なんかおかしくね?

407 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:30:56 ]
またこの流れかよw
>>60へどうぞww

408 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:31:54 ]
恋はかんべん

409 名前:デフォルトの名無しさん [2008/06/18(水) 23:28:46 ]

関数を呼び出す時って他の文字に置き換えてから使えたほうがいいんですか?

例えばadd関数を呼び出してif文に入れるときの場合
x=add(n);
if(x==1)
みたいな感じか
if(add(n)==1)
どちらがいいんでしょうか?
下のほうでやっていたら友達にそのやり方は見にくくてありえないしプロがそんなことやったら確実に怒られるといわれたんですがどうなんでしょうか?



410 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:31:17 ]
場面にもよるが、ステップによるデバッグがしづらいかもしれない。>後者

411 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:31:44 ]
いや好きにすればいいと思うよ
ただ、関数の結果を他にも使う予定があるなら上の方が良いんじゃない?

412 名前:デフォルトの名無しさん [2008/06/18(水) 23:36:20 ]
できる限り前者でやったほうがいいんですか?
習ってる途中で後者の方がわかりやすいと思ったのですがプログラムできる友達に言われたので…


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 ]
誤解を与えにくいように、というのはあまりメジャーではない二項演算子を
使う時などに、冗長ではあるが、括弧をつけて明示するようなことね。

ちゃんと知ってればその括弧が無くても正しく動作する事は理解できるが、
うろ覚えの人でも勘違いを起こさない。

もしかしたら研修明けの新人がメンテするかもしれないし。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<94KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef