- 1 名前:デフォルトの名無しさん [2005/08/11(木) 11:18:15 ]
- 前スレ pc8.2ch.net/test/read.cgi/tech/1021364372/
- 802 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:58:28 ]
- >>798
電子計算機損壊等業務妨害 で告訴しろ。 (告訴状作って会社の法務部に送りつけるだけでも効果あるぞ)
- 803 名前:デフォルトの名無しさん [2008/02/17(日) 15:07:57 ]
- >>802
人事部に電話したら、「会社の方針でお前を監視してるんだから逆らうな」って言われたから。 人事部長と直接話したいって言ったけど無視された。 会社クビにされるときに人事部長を名乗る人が来たけど、なんと創価学会の池田先生に瓜二つ。
- 804 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:16:56 ]
- >>803
こちらへどうぞ ttp://pc11.2ch.net/test/read.cgi/prog/1197192900/
- 805 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:26:19 ]
- >>803
「他人にいたずらされている」という妄想を抱いて、「なら反撃で、いたずら し返さなければ」とイタズラして、会社側から疑いをかけられて監視されて、 あげくのはてにイタズラしていたことがバレてクビになった。 としか、文章からは読み取れない。
- 806 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:58:23 ]
- むしろメンヘル逝きをお勧めしたい。
- 807 名前:デフォルトの名無しさん [2008/02/17(日) 16:30:11 ]
- 結局大工は釣りだとかいう観念論しかできないんだねw
- 808 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 17:20:45 ]
- いくら上げても技術要素0%のレスで火は起こせないか
- 809 名前:645 mailto:sage [2008/02/17(日) 20:42:55 ]
- 気になったので、gccでやってみた
void bar(int); int func(int arg) { if(arg == 0) goto foo; { int i; i = arg*2; foo: bar(i); } }
- 810 名前:645 mailto:sage [2008/02/17(日) 20:43:39 ]
- .file "gototest.cpp"
.text .align 2 .globl __Z4funci .def __Z4funci; .scl 2; .type 32; .endef __Z4funci: pushl %ebp movl %esp, %ebp subl $8, %esp cmpl $0, 8(%ebp) jne L2 jmp L3 L2: movl 8(%ebp), %eax addl %eax, %eax movl %eax, -4(%ebp) L3: movl -4(%ebp), %eax movl %eax, (%esp) call __Z3bari leave ret .def __Z3bari; .scl 2; .type 32; .endef こうなる。 やはりiは確保されません。
- 811 名前:デフォルトの名無しさん [2008/02/17(日) 20:48:02 ]
- >>810
goto使うなっての以上に、ブロックで変数定義するなってのもある。 しかし、オブジェクトはその場所で作るしかないんだな。
- 812 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:33:13 ]
- だからレジスタに割り当てられてるんじゃないの?
- 813 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:44:22 ]
- >>812
たった4つの32ビットレジスタで計算しないといけないのにそんな無駄なことできないでしょ。 少なくとも何かをするとしたらレジスタを使う。 やるとしても小さいループのループカウンタくらいか。
- 814 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:47:27 ]
- goto fooすりゃi=arg*2が実行されないのは当然ダロ
何を期待してんのかわからn
- 815 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:58:11 ]
- >>813
内側のブロックで宣言できないとしたら、 外側のブロックで宣言するだけ。 実態としては何も変わらない。
- 816 名前:645 mailto:sage [2008/02/17(日) 22:02:54 ]
- >>814
ああ、テキトーに作った例だから、実際の動作は気にしないでくれ。 問題は、ブロックの中で定義した変数の領域が確保されていないのに、関数呼び出しに使われてしまうという事実ね。 多分、foo: の後にi = i+argなんてやってもダメだと思う。
- 817 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:03:51 ]
- >>816
ヒント: jne L2 が実行された場合は L2 のどこで「領域が確保」されていますか?
- 818 名前:645 mailto:sage [2008/02/17(日) 22:04:03 ]
- 809のiの定義の後でiに代入してるのはコンパイラにiの定義をスルーさせないように、それらしい仕事をさせたかったから。
- 819 名前:645 mailto:sage [2008/02/17(日) 22:04:41 ]
- >>817
ああ、別にされてないね。
- 820 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:26:56 ]
- データフロー解析ぐらいは最近のコンパイラなら当たり前だよ?
ガチガチにソースコードに対応するようなコードを吐いて欲しいなら -O0 を付けるとか...してもそこまでガチガチなコードが出るかどうか。
- 821 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:28:40 ]
- >>820
そういう問題じゃない。出ているコードは綺麗にソースに対応している
- 822 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:46:57 ]
- スタックフレームが
>subl $8, %esp で8バイト確保されていて iが >-4(%ebp) なら、関数の先頭で「確保」されてるんじゃね?
- 823 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:48:59 ]
- >>822
正解
- 824 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:57:19 ]
- >>811
>goto使うなっての以上に、ブロックで変数定義するなってのもある。 いやこれはするだろ。 あれ、みんなしない派?
- 825 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 03:21:11 ]
- 俺は、近くで定義したい派。
ブロック内で変数定義することはある。 ただ、外の変数と名前がかぶらないほうがいいかなぁ〜、くらいは気を使う。
- 826 名前:デフォルトの名無しさん [2008/02/18(月) 08:18:56 ]
- 普通は最小スコープ(内側のスコープ)で定義するのが常識
- 827 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 09:06:07 ]
- それ厳密に適用するととんでもないことに
- 828 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 09:25:19 ]
- 手続き的にやろうとするから、変数を外のスコープにひっぱり出すとかが
必要になる。関数的に、なんでも再帰あちこちでreturnな書き方をすれば それでうまくいく。
- 829 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:26:48 ]
- >なんでも再帰あちこちでreturn
吊り?
- 830 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:00:57 ]
- >>813
そんな特定のアーキテクチャに依存した話を突然持ち出されてもねえ、、、
- 831 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:07:36 ]
- >>829
> >なんでも再帰あちこちでreturn > 吊り? 釣りでもなんでもない。ifやswitchが文でなく式なら、 return if (hoge) true else false; みたいに書けるのに(3項演算子は可読性が低いから却下)、 そうでないから、 if (hoge) return true; else return false; というように書かざるをえない、ってだけ。
- 832 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:15:50 ]
- 3項演算子に対する嫌悪感って goto のそれに似たものがあるな
- 833 名前:デフォルトの名無しさん mailto:晒すとするか [2008/02/20(水) 17:18:18 ]
- 3項演算子とgotoじゃ全然違うだろ・・・これだからgoto厨は・・・
- 834 名前:デフォルトの名無しさん [2008/02/20(水) 18:46:16 ]
- 3項演算子はネストしない限りif文よりも可読性高い場合もあるだろ
特に>>831のような単純な分岐の場合は。どうせ見た目で毛嫌いして るだけだろうけど。
- 835 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:48:46 ]
- >>834
ネストしたって適切なカッコさえつければ問題ないだろ。 特に>>831の場合には積極的に3項演算子を使うべき箇所と思われ。
- 836 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:56:34 ]
- それは再帰とは呼ばない。
ということだけは覚えてほしい
- 837 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:59:35 ]
- if 文のみで書こうとすると異常にネスティングが増えるケースについて
3項演算子をif文とともに使って、ネスティングを削減すると、コードがすっきりするので好きだ。
- 838 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:16:21 ]
- 例えばループで書くと
foo() { cond = true while (cond) { ・・・ ・・・ if (...) { cond = false } ・・・ ・・・ } } みたいな構造で、condのようなスコープの広い変数が 必要になるのが、再帰で処理するように書き直せば、 foo() { ・・・ ・・・ if (!...) { foo() } ・・・ ・・・ } で済む、かもしれない、ってこと。
- 839 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:19:27 ]
- >>836
再帰かどうかが、returnがif文の中か3項演算子の外かで左右されるとでも?
- 840 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:33:38 ]
- >>838
でっていう
- 841 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:48:45 ]
- >>838
いや、皆が問題にしてるのはそういうことではなく while (cond) { int i; .... } みたいなスタック操作の無駄のことと思われ。
- 842 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:19:37 ]
- 末尾再帰でもないのに、それは・・・
- 843 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 22:22:30 ]
- >>838の
foo() { cond = true; while (cond) { s1;s2; if (...) {cond = false} s3;s4; } } これは、condが2回目のループでfalseになるとすると、 s1,s2,s3,s4,s1,s2,s3,s4の順で実行される。 で、 foo() { s1;s2; if (!...) {foo();} s3;s4; } これは、2回目のループで(!...)がfalseになるとすると、 s1,s2,s1,s2,s3,s4,s3,s4で実行されるから順番が変わる。そこでs3;s4をifの前に持ってくるわけだ。 すると、 foo() { _loop: s1;s2;s3;s4 if(...) goto _loop; } みんな末尾再帰でgoto使う?
- 844 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 22:24:12 ]
- 末尾再帰をgotoにするのはコンパイラのお仕事。
- 845 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 02:28:28 ]
- 再帰使うならgotoはいらん。
(再帰を中断するときには使うかもしれん)
- 846 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 05:40:03 ]
- つかそれはdo{}while(..);
- 847 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 07:36:46 ]
- >>843が全然末尾再帰になっていない件について
- 848 名前:goto使わなければそれがいい派 mailto:sage [2008/02/21(木) 10:34:02 ]
- >>751
まあ、そういうコードが含まれているプログラムの中には 脆弱性だのバグだのいっぱい含まれているものだ。 セキュリティについて、潔癖で有名なDJBですら、結構gotoを 多くつかう。 まったく使わないで終わらせた作品としては は、比較的私家版パッチの突っ込みが少ない publicfile くらい。 後は山のようにgoto文があってDJBは嫌いだという人間もいる。
- 849 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 10:37:28 ]
- >>841
{} がつくと何でも変数スコープを狭く取りたがるつか、 同じ変数を使いまわしてもバグにならないというか、 単たる手抜きか。
- 850 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 14:08:08 ]
- pascalみたいに手続きの最初で全部まとめて宣言しろ
- 851 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 15:58:33 ]
- >>841
それも違うだろ。それくらい最適化でどうにでもできる。
- 852 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 20:22:54 ]
- >>845
ハァ?再帰からgotoで抜けるだぁ? これだからgoto厨は…
- 853 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 21:49:55 ]
- 再帰からgotoどころかlongjmpだってしちゃうぜ!
- 854 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 21:59:56 ]
- よーし、俺はexitだ。
- 855 名前:デフォルトの名無しさん [2008/02/21(木) 22:41:57 ]
- いいこと思いついた。
お前ら俺のプログラムのケツにストリームデータ流し込んで実行してみろ。
- 856 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:50:35 ]
- >>855
えっ!お前のケツにすとりーむでーtlk;ghklj;
- 857 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 07:15:04 ]
- >>851
そんな最適化をされたらデストラクタロギングが使えなくなるじゃないか!!
- 858 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:10:22 ]
- >>857
コンストラクタ・デストラクタが呼ばれなくなるような最適化なんて行われるわけないだろ。 少なくともC++では。
- 859 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:14:27 ]
- いずれ呼ばれるにしても、呼ばれるタイミングは変わるかもよ?
- 860 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:05:58 ]
- >>859
どこの規格無視コンパイラだ?
- 861 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:47:10 ]
- gotoを使う想定でロジックを組むなら、それを分かりやすく図示する方法を発明してから
にしてほしい。そうじゃないとレビューする気にもなれない。 ここで出たようなgotoを使った書き直しの例なら、gotoを使ってないロジックを例えば NSチャートとかで書いた方が、とてもとても分かりやすくて人にも説明し安いだろう。 チームメイトにロジックを説明するようにお願いてフローチャートをもってこられたら、 とりあえずバケツもって廊下に立っててくれるようにお願いしちゃうな。 システムが使われなくなるまでその人が死なずに内容も忘れずに保守するってのが保証さ れてたとしても、仕事ではそんなロジックは受け入れ難いな。 だいたい現実的にgotoを使った方が良い場合ってのが、想定しづらい。 リソースだのコードサイズだののためのためにgotoを使うってのは、やらないと用件が 満たせないからって理由で、設計とかコーディングとかのさらに後に最適化フェーズを 設けてそこでやるんなら認めなくもないが、元からgotoを使うのが正しい場合なんての を考慮しながらロジックを考えるような人とは一緒に仕事はできないなぁと思う。 なんでそんな書き方になってるか説明するための資料も作んないといけないし、仕事が 増えるばっかりだ。段階的抽象化とか物事を整理するとかに興味がないかできない人な んだなとしか思えない。 誰かが事故にあってもリカバリがきくような状態を維持しようと思ったら、少しくらい 冗長になっても、なるべくわかりやすい設計&実装にしたいって思うのは普通だと思う んだがなぁ。
- 862 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:56:49 ]
- わたしはソース読み力がありません。
まで読んだ。
- 863 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:15:25 ]
- >>862は>>861を読む力がありません
まで読んだ。
- 864 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:38:46 ]
- resource *hoge(int arg) /*失敗でNULL、成功でリソース(p4)を返す*/
{ resorce *p1 = NULL,*p2 = NULL,*p3 = NULL, *p4 = NULL; p1 = GetResource1(arg); /* GetResoruce*は失敗した時にNULLを返す */ if(!p1) goto failed; 処理1 p2 = GetResource2(p1); if(!p2) goto failed; 処理2 p3 = GetResource3(p1,p2); if(!p3) goto failed; 処理3 p4 = GetResource4(p3); if(!p4) goto failed; 処理4 FreeResource(p3); FreeResource(p2); FreeResource(p1); return p4; failed: if(p4) FreeResource4(p4); if(p3) FreeResource3(p3); if(p2) FreeResource2(p2); if(p1) FreeResource1(p1); return NULL; } これgoto使わないとどう書く?もちろんスマートポインタ、GC、例外は使用不可。
- 865 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:43:29 ]
- >>864
もうそれ飽きた。いいかげん空気読め、アフォ。
- 866 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:45:43 ]
- 各GetResourceの前にifつけてやって、
処理4
- 867 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:52:11 ]
- p1 = GetResource1(arg);
if(p1) { 処理1 p2 = GetResource2(p1); if(p2) { 処理2 p3 = GetResource3(p1,p2); if(p3) { 処理3 p4 = GetResource4(p3); if(p4) { 処理4 } } } } if (p3) FreeResource(p3); if (p2) FreeResource(p2); if (p1) FreeResource(p1); return p4;
- 868 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:58:18 ]
- 俺の感覚だと、読んだだけで「ああ失敗なんだな」って分かる>>864のが好きなんだよね。
あとネストが深くならないのが。
- 869 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:02:22 ]
- >>868
処理そのものがネスト構造になっているんだから、 コードもネストしたほうが実態がわかっていいんじゃねーの?
- 870 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:03:52 ]
- >>863
なにがそんなに悔しいの?
- 871 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:05:33 ]
- ↓いつものgdgdな展開へ・・・
- 872 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:05:36 ]
- >>869
なるほどねー。 >>870 いや別に。リソース確保でネストさせるのが嫌いだってだけで。
- 873 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:07:28 ]
- 自演シッパイ、オツwwww
- 874 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:08:19 ]
- gdgdだな
- 875 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:08:50 ]
- >>872
リソース確保の条件がネストしているのだから、 コードもネストしたほうが実態がわかっていいんじゃねーの?
- 876 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:09:53 ]
- アンカー打ち間違える奴は、gotoでもラベル打ち間違えるに決まってる件について。
- 877 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:10:19 ]
- >>875
なるほどねー。
- 878 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:11:50 ]
- >>876
>>870の>>863を>>869に読み間違えてたわwww
- 879 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:12:06 ]
- 処理1〜3にもよるだろう。
短いならいいけど、長ければネストしたくないって人もいるだろう。 あと、エラーならその場で関数から抜けたいタイプのひともいるし、 あれだけじゃなんとも。
- 880 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:12:17 ]
- あ、上の>>869は>>868ねwwwww
- 881 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:13:09 ]
- わざとだろwwww
- 882 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:14:03 ]
- >>881
>>878⇒>>880はねwwww読み間違えてたのはホント。
- 883 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:14:41 ]
- gdgdだーwww
- 884 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:15:37 ]
- >>879
ネストしたくなきゃ、 if (p1 && p2 && ...) { とすればいいだけなんじゃ?
- 885 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:19:58 ]
- >>879
たった3つの解放だけなんだから、解放をマクロにしちゃって goto failedのかわりにFreeAll; return NULL;しちゃってもいいな。 いずれにせよ、このネタはもうイトフユだろ。
- 886 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:47:58 ]
- ネストするなとか、あいかわらず後出しジャンケンなんだね、goto厨は…
まあその後出しジャンケンも>>885で残念賞なわけだがw
- 887 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:52:42 ]
- ↑と、ここまでいつものgdgdな展開ですた。
- 888 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:06:03 ]
- 嫌goto厨は「異議あり対案なし」であることが証明されました。
- 889 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:25:52 ]
- >>882
リアルでアンカー読み違える香具師がgotoを使うのは キ チ ガ イ に 刃 物
- 890 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:27:06 ]
- >>888
gotoを使わない対案ならこの短い間に3つも出ましたが何か?
- 891 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:31:07 ]
- 「出る」と「出す」の違いくらいわかってもいいとおもうぞ。
- 892 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:47:16 ]
- >>891
おいおい、>>888の主語は「嫌goto厨は」なんだから、 gotoを使わない対案が出ていればそれで十分に反証になるだろw
- 893 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:25:38 ]
- 自分の他人の区別さえつかないのか、かわいそうに。
- 894 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:32:55 ]
- 他人が書こうが誰が書こうがgotoを使わない対案であることに何の変わりもないが?
- 895 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:37:31 ]
- 嫌goto厨は「異議あり対案なし」であることが証明されました。
- 896 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:58:53 ]
- >>895
gotoを使わない対案ならこの短い間に3つも出ましたが何か?
- 897 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:01:08 ]
- それがなにか?
- 898 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:06:18 ]
- いいよ〜gdgdいいよ〜
- 899 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:09:56 ]
- 864のgotoは不要ということで。
- 900 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:39:25 ]
- 俺の感覚だと、見た瞬間に 864>>>867 なんだがなあ。
えーとさ。FAILEDっていうラベルの存在自体が 「物凄くソースコードの見通しを良くする、これ以上無い最高のコメント」 だと思うんだよ。
- 901 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:51:29 ]
- >>900=>>864 オツw
- 902 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:55:29 ]
- >>901
goto派が一人しかいないと思ってるなら、 君はたった一人のgoto厨に向かって何を必死に反論しているのかしら?w
- 903 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:59:26 ]
- goto派が一人しかいないなんて話、どこの脳内議論から降ってきたのだろうか・・・
脳ミソがスパゲッティになってるんじゃないの?
- 904 名前:デフォルトの名無しさん [2008/02/23(土) 11:00:48 ]
- ラベルに適切な英語名を振れない低学歴が吠えてるだけ
- 905 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:02:13 ]
- 1000までgdgd
- 906 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:05:46 ]
- >>900
FAILEDなんてラベル、>>864にはないんだけど・・・ ラベルも扱えない香具師がgotoを使うのは キ チ ガ イ に 刃 物
- 907 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:06:50 ]
- すげぇ、TYPOも許容しないほどの厳格な議論なのかと思ったら
ただの罵り合いじゃん。
- 908 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:08:20 ]
- gotoを適切に使うことで見通しよく書けているコードなど
オープンソースソフトウェアを少し読めばいくらでも見つかるし まともなプログラマならばgotoを使うべきコードパターンというのを イディオムとして持っている が 業務の中で頭の固い奴を説き伏せてまで良いコードを書こうとは 思わないので仕事では適当にwhileやifをネストさせてその場限りの コードをぐちゃぐちゃに書く。保守性など知らない とりあえず「見た目上構造化」しておけばよいのだからそれ以上 考えても無駄無駄無駄。所詮は仕事
- 909 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:11:14 ]
- >>908
ifをネストさせない対案も複数出ているが? さあ、今度はどんな条件を後出しするのかなwwwwwww
- 910 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:11:36 ]
- という思想で書き散らかされたプログラムに
腐れUMLと自動生成された糞doc、スパイスとして捏造されたテスト報告書をくっつければ ほら高品質ソフトウェアの出来上がりでござい
- 911 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:14:22 ]
- if (p1 && p2 && ...) {
馬鹿馬鹿しく肥大化した分岐条件 goto failedのかわりにFreeAll; return NULL; 馬鹿が思いつきで定義する糞マクロ イイヨイイヨー
- 912 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:26:33 ]
- >>861
>誰かが事故にあってもリカバリがきくような状態を維持しようと思ったら、少しくらい >冗長になっても、なるべくわかりやすい設計&実装にしたいって思うのは普通だと思う >んだがなぁ。 設計については正しい。 だが 実装については正しくない。 そしてここは実装について話すスレだよ。
- 913 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:30:38 ]
- goto厨のオナニースレなんだから、まともな論理は通用しないよ > goto自重派
- 914 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:31:51 ]
- >>908
その場かぎりのgotoでグチャグチャになってる>>864にどんな保守性を期待してるのやら。 他人のコードレビュー受けたことないでしょ、君は。
- 915 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:33:01 ]
- >>908
> まともなプログラマならばgotoを使うべきコードパターンというのを > イディオムとして持っている それが他人に読まれた時にどんな混乱をもたらすか 考えたこともないのがgoto厨クオリティ
- 916 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:36:59 ]
- whileやifがネストしただけで混乱するようなプログラミング初心者がgotoを使うのは
キ チ ガ イ に 刃 物
- 917 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:38:50 ]
- >>876
> 876 名前:デフォルトの名無しさん [sage]: 2008/02/23(土) 07:09:53 > アンカー打ち間違える奴は、gotoでもラベル打ち間違えるに決まってる件について。 > 900 名前:デフォルトの名無しさん [sage]: 2008/02/23(土) 10:39:25 > えーとさ。FAILEDっていうラベルの存在自体が まさにご名答。先見の明がありますな。 どこぞの後出しジャンケンと大違い。
- 918 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:49:14 ]
- だめだここはれべるがひくい
- 919 名前:デフォルトの名無しさん [2008/02/23(土) 11:50:45 ]
- 864 finally使え
- 920 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:53:47 ]
- >>919 正解ですな。
finallyはスマートポインタ、GC、例外ではないからねえw
- 921 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:03:48 ]
- 大域脱出と例外処理には使うかな。
使わなくても書けるけど、特に宗教が無ければ使うよね普通。
- 922 名前:デフォルトの名無しさん [2008/02/23(土) 12:06:04 ]
- >>864
p1からp3まで格納するオブジェクトをつくって、 デストラクタでp1からp3を解放しろ。 ところで > failed: > if (p4) FreeResource4(p4); これは何の冗談だ?p4はNULLなはずだが?
- 923 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:07:23 ]
- >>921 特に宗教が無ければそういうのを「例外処理」とは呼ばないよね普通。
- 924 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:07:24 ]
- あさってのほうこうをむいているぞきみは
- 925 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:11:13 ]
- >>283
そうやって評論家ばかり集まって何も生み出さないから日本は駄目なんだよ
- 926 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:11:33 ]
- >>922
ほんと、>>867のように書いてみれば、failed:に来た場合p4はNULLだということに気付くはずなのに、 ツギハギだらけの思考で書いたんだろうな、>>864は。
- 927 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:11:39 ]
- 誤爆
- 928 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:13:43 ]
- 誤爆だが、このスレの実情を的確に表現した名文だ。
- 929 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:18:21 ]
- goto乱用厨が出すコード例はほとんどgoto慎重派によって対案が出されている。
なのにgoto乱用厨は次から次へとほとんど同じようなコードを出してくる。 >>864のパターンはこのスレだけでも何度も出てきている。 いくら対案を出しても、 「オプソ探せばいくらでも例はあるモン、goto使ったほうがいいモン」 と言って駄々をこねる。 結論: goto乱用厨=ゆとり脳。
- 930 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:23:10 ]
- その対案は改善でなく改悪だという意見が何度も出ていますが?
- 931 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:26:34 ]
- tesu
- 932 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:28:14 ]
- >>930
アンカー打ちまちがえたりラベル打ちまちがえたりする オッチョコチョイさんからねwww
- 933 名前:デフォルトの名無しさん [2008/02/23(土) 12:28:46 ]
- p4 = GetResource4(p3);
のあとlこ if (p4) FreeResource(p4); が書かれていない件
- 934 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:31:05 ]
- >>933
へえお前はfreeしたポインタを返すのか。なかなか凄いな
- 935 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:32:28 ]
- ここで結局932のような攻撃しかこないのが駄目
内容のある議論の入口にすら立てない
- 936 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:35:20 ]
- 相手の技量もわからず内容のある議論ができるわけもなし
933みたいな素人が知ったかぶりで自説を語るのが2ch
- 937 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:36:08 ]
- ところで
> failed: > if (p4) FreeResource4(p4); これは何の冗談だ?p4はNULLなはずだが?
- 938 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:36:27 ]
- まぁ、そんなスレもそろそろ終盤。
うめ。
- 939 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:36:52 ]
- 恥ずかしい間違いを指摘されても別人のふりで再登場だしな
実際このスレもせいぜい4,5人の素人が回してるだけだろ
- 940 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:36:52 ]
- >>934
それがgoto厨クオリティ
- 941 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:39:03 ]
- goto 禁止 とか適当なキーワードでぐぐれば
このスレを読む1%の労力でこのスレを読む100倍の内容が得られる
- 942 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:39:11 ]
- >>930
finallyについては? デストラクタについては? さあ、finallyやデストラクタを使った方法が改悪だというレスへのアンカー示してみろよ。
- 943 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:40:19 ]
- >>942
例外やスマートポインタやGC禁止って言ってるところで finallyだのデストラクタだの、なぞなぞはお前のガキ相手にやってろ
- 944 名前:デフォルトの名無しさん [2008/02/23(土) 12:41:37 ]
- >>930
余計なif (p4) FreeResource(p4);が消えた点だけでも >>867は>>864よりも優れているが?
- 945 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:42:34 ]
- >>943
あのー、finallyは例外でもスマートポインタでもGCでもないんですがwww 君、プログラミング言語に関する知識が決定的に不足してるんじゃない?
- 946 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:44:24 ]
- >>944
ありうる状態や制御の流れについての理解を促すというのも 構造化プログラミングの利点の1つだな。 簡単にgotoに逃げちまうと>>864のようなお粗末なコードになる。
- 947 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:44:47 ]
- >>945
例外処理機構を備えていなくてfinallyだけ持っている言語を挙げよ
- 948 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:46:26 ]
- >>943
アンカー示せないわけね。 まあ示してもどうせまた打ち間違えるだろうけど。
- 949 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:46:35 ]
- 945は947に対して逃げて次は別人のふり
- 950 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:47:20 ]
- >>947
単に現代的な言語なら例外もfinallyも持ってるというだけの話だろ。 何をマヌケな事をぬかしているのやら…
- 951 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:48:12 ]
- >>949 他人がみな自分と同じ行動を取るとは限らないのだよ、おマヌケさんw
- 952 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:48:53 ]
- throwしなければ例外「は」使っていないからfinallyはいいじゃん
とかね。 finallyやデストラクタと言った奴は軽いネタだったと思うんだが ネタがネタとして扱われない議論厨の厨っぷりに呆然
- 953 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:54:20 ]
- >>952
finallyと例外機構は実装としてほとんど独立なんだけど… 実際、finally句が実行されるのは例外の時だけじゃないし。 try…catchとの類似で混同してる人が多いけど。 gotoたまに使う派として恥かしいんでROMやめてレスしてみた。
- 954 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:55:17 ]
- >>951
そんなのはどうでもいいよ。 問題なのは945(か他の誰かでもいいけどさ)が 947 に正面から答えられるかどうかだけ。 だいたい、945がちゃんと知識を持って書いてるなら、 そういう言語をすぐに答えれば逆に俺が大恥を書くことになる。 実は何の知識も無いくせに知ったかぶりで煽ってるから すぐにケツをまくって格好悪く逃るハメになるのさ。
- 955 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:55:59 ]
- しかし、マジレスが浮かばれないスレなので、それも燃料にされてしまう悲しさ・・・
↓具体化してください、どーぞ。
- 956 名前:デフォルトの名無しさん [2008/02/23(土) 12:58:28 ]
- 次スレ
pc11.2ch.net/test/read.cgi/tech/1203658291/
- 957 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:58:42 ]
- ↑具が大きい
- 958 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:00:03 ]
- >>954
まあ落ち着いて>>950でも読んでみたら?
- 959 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:00:38 ]
- もう技術的な話は出尽くしていて後は
2chリロードするしか生きがいのないクズどもが goto使う・使わない人間の人間性叩きしかやってないし 次はマ板でやれよ。
- 960 名前:デフォルトの名無しさん [2008/02/23(土) 13:01:57 ]
- いろんな文法の変更を試している人がいるから、その中のひとつとして考えてみる
- 961 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:02:39 ]
- tesu
- 962 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:03:11 ]
- gotoは何も悪くない。
悪いのはラベルだ。
- 963 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:03:22 ]
- >>958
「例外もfinallyも持っている言語で>>864のようなコードを書くこと」 について議論してたの?
- 964 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:03:59 ]
- 技術的な話はあめぞうが生まれる前から出尽くしているような気が。
- 965 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:04:03 ]
- 次スレ
pc11.2ch.net/test/read.cgi/tech/1123726695/
- 966 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:06:59 ]
- >>963
わざわざ具体的な例を挙げて「使用不可」と断りを入れてるぐらいだから、 そこに挙げられていないものはデフォルト使用可なんじゃねーの? いいかげんにしないとまた「条件後付け」と指摘されるぞw
- 967 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:08:31 ]
- まあこのスレの大半の奴はgoto行番号でプログラムを書いた経験なんてないだろ?
構造化以前を実体験として知らない年代の人がgoto議論なんてするもんじゃないよ。 それは別にレベルの高い低いじゃなくて、時代が違うというだけ。
- 968 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:11:34 ]
- 代入を恐れず使う兵共が継続やモナドを語るスレきぼんぬ
- 969 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:12:46 ]
- >>966
わざわざ例外だのGCだのと言うぐらいだから、 少なくともC限定の話だとは思えないよな。
- 970 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:15:05 ]
- while文を恐れず使う兵共が再帰やgotoを語るスレきぼんぬ。
- 971 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:15:25 ]
- forやwhileも十分見通しが悪い再帰で書け
- 972 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:15:53 ]
- 安易に破壊的代入を使う奴は素人
- 973 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:16:25 ]
- 忘れられたデストラクタたん、かわいそス
- 974 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:16:37 ]
- ここはひとつmapで。
- 975 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:18:20 ]
- 急にム板らしくなってきた
- 976 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:25:26 ]
- tes
- 977 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:26:34 ]
- goto hell;
- 978 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:28:16 ]
- hell:
goto heaven;
- 979 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:29:55 ]
- >>963
スレタイ読め。 このスレは、finallyや多重breakを語るスレだ。 finallyを対案に使って何が悪い?
- 980 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:32:28 ]
- てs
- 981 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:34:50 ]
- g-gg-g-gg-g-gg-gg--
- 982 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:40:48 ]
- >>979 それは正論だがもう遅い。皆帰ってしまったよ。
- 983 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:42:09 ]
- goto jail
- 984 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:44:18 ]
- goto mental_hospital;
- 985 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:45:59 ]
- それは元ネタがわからん
- 986 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:16:01 ]
- ってst
- 987 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:18:12 ]
- >>967
あるよ。 でも「構造化以前に開発経験のある者」に限定するなら、レスの98%位が不合格だ。 今現在もコードを書いている人間が語るから面白いのさ。
- 988 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:22:40 ]
- 俺も行番号でgotoとか書いていたし、現在でもコードを書いているが、
このスレの99%のレスは落第だと思うな。
- 989 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:24:30 ]
- 生め
- 990 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:25:42 ]
- 関数って考えがなかったからな
サブルーチンはgotoかgosubでしか実装できなかったろ
- 991 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:31:29 ]
- >>990
でもNEXT J, Iとかはあったな。うめ。
- 992 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:34:04 ]
- gosubは理解するのに時間かかったな・・・
- 993 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:34:04 ]
- test
- 994 名前: ◆.CzKQna1OU mailto:sage [2008/02/23(土) 14:34:33 ]
- te
- 995 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:34:59 ]
- 俺は次すれでもthrowしまくるぜ
- 996 名前: ◆84g/KG3Nug mailto:sage [2008/02/23(土) 14:35:11 ]
- st
- 997 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:35:17 ]
- DEF FUNみたいのもあったな。方言か?うめ
- 998 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:35:41 ]
- next
- 999 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:36:01 ]
- .
- 1000 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:36:20 ]
- goto 1
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|