08/02/17 06:59:38
>>742
linuxカーネルの話は723よりも前に出ている。
ま、くだらない貶しあいには興味がないので具体例で。
vhost.cの最初の3つはこういう構造。
static void fix_hostname(request_rec *r) {
...
if (rv != APR_SUCCESS || scope_id) { goto bad; }
...
if (r->hostname[0] != '[') {
for (dst = host; *dst; dst++) {
if (apr_islower(*dst)) { ... }
else if (*dst == '.') { ...; goto bad; }
else ...
}
}
...
return;
bad:
...
return;
}
745:デフォルトの名無しさん
08/02/17 07:03:07
自分は>>744のgotoの使い方は特に問題がないと思う。見やすい。
gotoを使わずにより良いコードを書ける人は代案をよろしく。
「744のように端折られると詳細がわからないから書けない」という言い訳はなしな。
「本物」のコードへのポインタは>>741にある。必要なら本物を見てくれ。
746:デフォルトの名無しさん
08/02/17 07:05:30
それから、一つだけ。
抽象的な言い合いの間は散々吠えておいて、
こういう流れにされると何もいえなくなる人へ。
「お前はgotoを使うな」
747:デフォルトの名無しさん
08/02/17 07:22:04
vhost.cの下2つ(L904, L916)はこの関数。
static void check_hostalias(request_rec *r) {
処理
for (ループ条件) {
処理 // この部分に、条件を満たしたらcontinueというコードがある
if (判定条件) goto found;
処理 // この部分に、条件を満たしたらcontinueというコードがある
if (判定条件) goto found;
}
return;
found:
r->server = s; // この一文のみ
}
これはごく単純なgotoの例。多重ループでも何でもないが、使わない人フラグを立ててbreak?
r->server=s; return;を二箇所に書くという書き方も、二箇所程度ならありかもね。
748:デフォルトの名無しさん
08/02/17 07:24:39
>>744
bad:
...
return;
な部分をマクロにしちゃえばgotoなんて使う必要ないんじゃ?
749:デフォルトの名無しさん
08/02/17 07:27:08
mpm_netware.cでの使われ方
for (ループ条件) {
処理
do {
処理
if (条件) goto got_listener;
処理
} while (ループ条件);
continue;
got_listener:
処理
}
750:デフォルトの名無しさん
08/02/17 07:32:07
>>749
goto got_listenerが一箇所なら
if (条件) {処理; break;}で済む問題だな。
複数箇所なら処理をstatic関数にすればいい。
そもそも「処理」ってくくれるぐらいまとまってるんだろ?
751:デフォルトの名無しさん
08/02/17 07:33:27
ちなみにこうやって具体的なコード片で議論しても
全体の構造うんぬんの話の検証にはならない。
というか、むしろ局所的な制御しか考えてないと
goto慎重派に言われても仕方ないことになるが。
752:デフォルトの名無しさん
08/02/17 07:37:26
このパターンは条件がどんどん後付けされるのでは?
過去何度かあったろ。いいかげん気付け。
753:デフォルトの名無しさん
08/02/17 07:41:45
今度のパターンは条件を後付けする必要ありません。
次から次へのgrep gotoした結果がタレ流されるパターンです。
1つの例にレスがついたらその議論を先にするのが礼儀というものだが
このスレのgoto厨は無視してひたすらgrepを続けます。
それがgotoクオリティ。
754:デフォルトの名無しさん
08/02/17 07:41:58
>>750
>そもそも「処理」ってくくれるぐらいまとまってるんだろ?
いや。got_listenerの後の処理は長い。
do whileで条件を満たせなかった場合はcontinueするという意図のコード。
>>751
そうか。
>>752
ならばコードを読め。>>741参照。
755:デフォルトの名無しさん
08/02/17 07:49:46
>>748
マクロは意図するところが十分に明確で、かつ処理が短い場合は良いアイデア。
今回の実際のコードではreturnを入れて3文なので悪くはないかも。
(r->statusに代入、ログ吐き、return)
ただしマクロの濫用もコードの可読性を落とすので避けるべき。
vhost.cはマクロについては単純なものしか使っていないので、ポリシーの違いだろうね。
756:デフォルトの名無しさん
08/02/17 07:52:51
正解は753でしたw
757:デフォルトの名無しさん
08/02/17 07:54:54
バカが浮き彫り
758:デフォルトの名無しさん
08/02/17 07:55:28
>>754
いや、俺が言ってる「まとまってる」のは長さじゃなくて、
使う変数の依存関係が閉じた傾向にあるという意味。
759:デフォルトの名無しさん
08/02/17 07:58:17
goto肯定派は実用的なコードから
「ここはこうgotoを使えばもっと綺麗になるのに」
という例を出すつもりはないのかね。
いつでもgoto慎重派にコードを書かせるのは
フェアじゃないと思うのだが?
760:デフォルトの名無しさん
08/02/17 08:04:27
今、>>759 が良い事を言った!
さあ「gotoを恐れずに使う兵共」の腕の見せ所だ!
761:デフォルトの名無しさん
08/02/17 08:23:27
>>758
そうか。閉じた傾向とか何ともいえないのでソースを読んで。
>>759
それこそ全然フェアじゃない。
・「Cで書かれた実用的なプログラムでgotoを一切使っていないもの」が一つも出されていない。
・「ここはこう」の「ここ」を見つけるために、相手にそのプログラム全体を全て読めと?
相手にコードを書かせようと思うなら、題材くらい自分で出せ。
762:デフォルトの名無しさん
08/02/17 08:26:54
ていうか、プログラマとして非常にガッカリなのは、
情報として>>741が出されて、それを題材にしているにも関わらず、
実際にhttpdのソースをダウンロードして自分でソースを追ってみた人が、
ここで議論している人の中に誰もいなそうってところだな。
コードリーディングしない人には、コードを語る資格も能力もないよ。
763:デフォルトの名無しさん
08/02/17 08:40:57
具体論になると机上の空論と違って盛り上がらないねえ
764:デフォルトの名無しさん
08/02/17 08:43:08
>>762は>>748や>>750は無視ということか。
grep するだけなら楽でいいもんな。プ
765:デフォルトの名無しさん
08/02/17 08:46:32
>>764
750は明らかに749しか読んでいないと思われ。
実際のコードに当たったらこんな発言が疑問形で出るわけがない。
>そもそも「処理」ってくくれるぐらいまとまってるんだろ?
そこに気付かない>>764自身も、他人を煽るだけで自分はコードを読んでいない。
766:デフォルトの名無しさん
08/02/17 08:47:34
強調するが、ここが重要ね。
そこに気付かない>>764自身も、他人を煽るだけで自分はコードを読んでいない。
767:デフォルトの名無しさん
08/02/17 08:48:47
そういう>>765は手あたり次第grepしただけ。
そうじゃないと言うのなら、
「ここはこうgotoを使えばもっと綺麗になるのに」
という例があるはずだから、それを提示しろ。
できないなら、コード読まない厨認定な。
768:デフォルトの名無しさん
08/02/17 08:49:28
煽ったり議論したりする暇はあるんだから、ついでにちょっとコードも読めばいいのにね。
と思うよ俺は。
769:デフォルトの名無しさん
08/02/17 08:50:04
>>763
一方的に「コード読め」「改善策を出せ」と言うばかりの香具師がいるからな
770:デフォルトの名無しさん
08/02/17 08:50:15
悪魔の証明を知らない人w
771:デフォルトの名無しさん
08/02/17 08:50:37
>>768 オマエガナー wwwwwwwwwwwwwwwwwwwwwwwwww
772:デフォルトの名無しさん
08/02/17 08:52:10
>>770
そうそう。grep厨はコードの断片を見せるだけで
議論は永遠に続くことになるんだよな。アフォらし。
773:デフォルトの名無しさん
08/02/17 09:02:40
強調するが、ここが重要ね。
そこに気付かない>>766自身も、他人を煽るだけで自分はコードを読んでいない。
774:デフォルトの名無しさん
08/02/17 09:08:42
こういうスレを読んでいると感じるけど
2chって「馬鹿しか得るものがない」場所だよね。
何の知識もない教えて君が相手を煽りながらタダで一方的に情報を得る。
教える側は何故か相手に罵倒されながら一方的に情報を提供して自分は何一つ得るものがない。
なので普通の人は嫌になってすぐに去り
2chに残るのは自己犠牲精神に満ち溢れた聖人と馬鹿だけ。
775:デフォルトの名無しさん
08/02/17 09:24:50
>>774
> 何の知識もない教えて君が相手を煽りながらタダで一方的に情報を得る。
goto厨のことだね。
goto慎重派はちゃんと改善例を提示しているのに
goto厨は文句を言うばかりで何の改善例も提示しない。
776:デフォルトの名無しさん
08/02/17 09:33:40
>>774
たかがgrepしただけでそこまで上から目線で言える根性が気に入った。
>>775
goto肯定派もコード出してるよ。>>469とか。目が腐りそうな糞コードだけど。
ちなみに>>469は>>485という形でgotoを使わずに可読性が上がったね。
777:デフォルトの名無しさん
08/02/17 09:35:56
485=774=grepした人=744以降でコード断片を出した人=普通の人なので去ります
778:デフォルトの名無しさん
08/02/17 09:38:20
と言いつつキリ番ゲットした>>777、オメ。
779:デフォルトの名無しさん
08/02/17 09:56:30
777が去った今このスレの運命は776の手腕にかかっている
780:653
08/02/17 10:11:45
6.8
自動記憶域期間をもつオブジェクトの初期化子、(略)は、
文の場合と同じく実行中に宣言に到達するたびにこれを評価し、
値をそのオブジェクトに格納する。
とあるので、gotoで宣言(と初期化)をまたぎこしていると、
初期化はされないとすべきのようです。
また、C99では「可変修飾型をもつオブジェクトの宣言を飛び越しては
ならない」という制限が加わってますね。なるほど。
781:デフォルトの名無しさん
08/02/17 10:37:43
>>776
goto否定派もコード出してるよ。>>267とか。目が腐りそうな糞コードだけど。
ちなみに>>267は>>263という形でgotoを使って可読性が上がったね。
782:デフォルトの名無しさん
08/02/17 11:07:56
一人で頑張ってる嫌goto厨。
後輩に得意になって言っちゃったの?
gotoは使うなって。
783:デフォルトの名無しさん
08/02/17 11:12:38
異議あり!代案なーし!
異議あり!代案なーし!
異議あり!代案なーし!
784:デフォルトの名無しさん
08/02/17 11:16:33
>>263は>>379で否定されたがね。
if (A_init() != 0) goto FAILED;
if (B_init() != 0) 80+0; FAILED:
if (C_init() != 0) goto FAILED;
if (D_init() != 0) goto FAlLED;
FAlLED:
しかしまいったね。
・・
785:デフォルトの名無しさん
08/02/17 11:17:33
アホなレス乞食ががんばっていますね
786:デフォルトの名無しさん
08/02/17 11:18:12
>>783
代案?
すべての法律がダメだけどそれを国会議員200人ぽっちで作れるわけないだろ。
社会保険庁ですら数万人いるのに。
787:735
08/02/17 11:18:51
>>735-736はバグってた。
CATCH節の中でthrow_exceptionするとFINALLYが走らない。
こりゃ結構恥ずかしい。インデントも崩れてるし。
788:デフォルトの名無しさん
08/02/17 11:19:23
ほお。
あなたに悪意を持つプログラマが goto を 80+0 と書いて
嫌がらせをするかもしれないから goto を使うべきではない
と。
ヴァァァァァァァァァァァ
ァァァァァァァァァァァ
ァァァァァァァァァァァァァァァァァァァァァァ
ァァァァァァァァァァァカ
じゃねーの?wwwwwwwwwwwwwwwwwwwww
789:デフォルトの名無しさん
08/02/17 11:20:41
どうでもいいけどダイクストラが言ってから今年で40周年か
見事な釣り師だな
790:デフォルトの名無しさん
08/02/17 11:23:18
>>788
森田さんこんなところにいたんですか。
ちなみに80+0と書き換えた森田さんは日常的に2ch語を上司に向かって話す極めつけの2chネラで、
バカジャネーノってAA使いまくりな人。
生まれは九州は福岡のとある会社の社長の息子。
791:デフォルトの名無しさん
08/02/17 11:23:28
「gotoを使うな」の釣り糸一本で
40年間、たぶん何百万人という単位のプログラマを釣りあげてる
恐るべしダイクストラ
792:デフォルトの名無しさん
08/02/17 11:25:34
>>791
大工さんはWhileをgotoで書くなと言っただけじゃね?
goto使いだってwhile使えるところでgotoとか使わないだろ。
793:デフォルトの名無しさん
08/02/17 11:28:53
sage不可能な良スレ
794:デフォルトの名無しさん
08/02/17 11:30:33
>>790
『福岡人はgoto禁止』でいいんじゃね?
795:デフォルトの名無しさん
08/02/17 11:31:49
違うか。森田さんは80+0って書いただけでgotoは書いてないもんな。
『福岡人と仕事するときはgoto禁止』?
いや『福岡人は面接で落とせ』?
796:デフォルトの名無しさん
08/02/17 11:32:40
福岡禁止
797:デフォルトの名無しさん
08/02/17 13:05:02
80+0なんてキーワードハイライトがあれば容易に見抜けないか?
あと、0に斜線が入ったフォント使うとか(0とoのような個別の事例にしか使えないけど)。
798:デフォルトの名無しさん
08/02/17 13:26:42
>>797
いやそれがね、うちの会社、ウィルスバスターが更新しないように、インストーラーに手を加えた上でウィルス感染させやがるんですよ。
イントラネット管理者の統括してる本人がやるから信用しちゃうでしょ。
福岡に本社のある東京一部上場企業なんだけど。
だからエディタにキーワード追加くらい簡単にやってのけるよ。
799:デフォルトの名無しさん
08/02/17 13:39:04
もはや798が質の悪い吊りだと見抜く方が容易
800:デフォルトの名無しさん
08/02/17 13:41:59
>>797
つうか字形が違いすぎてしばらく話の流れが全く理解できなかったよ
801:デフォルトの名無しさん
08/02/17 14:10:20
じゃあ次、コンパイラで使われていないラベルに対して警告を出すようにする。
802:デフォルトの名無しさん
08/02/17 14:58:28
>>798
電子計算機損壊等業務妨害 で告訴しろ。
(告訴状作って会社の法務部に送りつけるだけでも効果あるぞ)
803:デフォルトの名無しさん
08/02/17 15:07:57
>>802
人事部に電話したら、「会社の方針でお前を監視してるんだから逆らうな」って言われたから。
人事部長と直接話したいって言ったけど無視された。
会社クビにされるときに人事部長を名乗る人が来たけど、なんと創価学会の池田先生に瓜二つ。
804:デフォルトの名無しさん
08/02/17 15:16:56
>>803
こちらへどうぞ
スレリンク(prog板)
805:デフォルトの名無しさん
08/02/17 15:26:19
>>803
「他人にいたずらされている」という妄想を抱いて、「なら反撃で、いたずら
し返さなければ」とイタズラして、会社側から疑いをかけられて監視されて、
あげくのはてにイタズラしていたことがバレてクビになった。
としか、文章からは読み取れない。
806:デフォルトの名無しさん
08/02/17 15:58:23
むしろメンヘル逝きをお勧めしたい。
807:デフォルトの名無しさん
08/02/17 16:30:11
結局大工は釣りだとかいう観念論しかできないんだねw
808:デフォルトの名無しさん
08/02/17 17:20:45
いくら上げても技術要素0%のレスで火は起こせないか
809:645
08/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
08/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:デフォルトの名無しさん
08/02/17 20:48:02
>>810
goto使うなっての以上に、ブロックで変数定義するなってのもある。
しかし、オブジェクトはその場所で作るしかないんだな。
812:デフォルトの名無しさん
08/02/17 21:33:13
だからレジスタに割り当てられてるんじゃないの?
813:デフォルトの名無しさん
08/02/17 21:44:22
>>812
たった4つの32ビットレジスタで計算しないといけないのにそんな無駄なことできないでしょ。
少なくとも何かをするとしたらレジスタを使う。
やるとしても小さいループのループカウンタくらいか。
814:デフォルトの名無しさん
08/02/17 21:47:27
goto fooすりゃi=arg*2が実行されないのは当然ダロ
何を期待してんのかわからn
815:デフォルトの名無しさん
08/02/17 21:58:11
>>813
内側のブロックで宣言できないとしたら、
外側のブロックで宣言するだけ。
実態としては何も変わらない。
816:645
08/02/17 22:02:54
>>814
ああ、テキトーに作った例だから、実際の動作は気にしないでくれ。
問題は、ブロックの中で定義した変数の領域が確保されていないのに、関数呼び出しに使われてしまうという事実ね。
多分、foo: の後にi = i+argなんてやってもダメだと思う。
817:デフォルトの名無しさん
08/02/17 22:03:51
>>816
ヒント: jne L2 が実行された場合は L2 のどこで「領域が確保」されていますか?
818:645
08/02/17 22:04:03
809のiの定義の後でiに代入してるのはコンパイラにiの定義をスルーさせないように、それらしい仕事をさせたかったから。
819:645
08/02/17 22:04:41
>>817
ああ、別にされてないね。
820:デフォルトの名無しさん
08/02/17 22:26:56
データフロー解析ぐらいは最近のコンパイラなら当たり前だよ?
ガチガチにソースコードに対応するようなコードを吐いて欲しいなら
-O0 を付けるとか...してもそこまでガチガチなコードが出るかどうか。
821:デフォルトの名無しさん
08/02/17 22:28:40
>>820
そういう問題じゃない。出ているコードは綺麗にソースに対応している
822:デフォルトの名無しさん
08/02/17 22:46:57
スタックフレームが
>subl $8, %esp
で8バイト確保されていて
iが
>-4(%ebp)
なら、関数の先頭で「確保」されてるんじゃね?
823:デフォルトの名無しさん
08/02/17 22:48:59
>>822
正解
824:デフォルトの名無しさん
08/02/18 02:57:19
>>811
>goto使うなっての以上に、ブロックで変数定義するなってのもある。
いやこれはするだろ。
あれ、みんなしない派?
825:デフォルトの名無しさん
08/02/18 03:21:11
俺は、近くで定義したい派。
ブロック内で変数定義することはある。
ただ、外の変数と名前がかぶらないほうがいいかなぁ~、くらいは気を使う。
826:デフォルトの名無しさん
08/02/18 08:18:56
普通は最小スコープ(内側のスコープ)で定義するのが常識
827:デフォルトの名無しさん
08/02/18 09:06:07
それ厳密に適用するととんでもないことに
828:デフォルトの名無しさん
08/02/18 09:25:19
手続き的にやろうとするから、変数を外のスコープにひっぱり出すとかが
必要になる。関数的に、なんでも再帰あちこちでreturnな書き方をすれば
それでうまくいく。
829:デフォルトの名無しさん
08/02/18 12:26:48
>なんでも再帰あちこちでreturn
吊り?
830:デフォルトの名無しさん
08/02/20 16:00:57
>>813
そんな特定のアーキテクチャに依存した話を突然持ち出されてもねえ、、、
831:デフォルトの名無しさん
08/02/20 16:07:36
>>829
> >なんでも再帰あちこちでreturn
> 吊り?
釣りでもなんでもない。ifやswitchが文でなく式なら、
return if (hoge) true else false;
みたいに書けるのに(3項演算子は可読性が低いから却下)、
そうでないから、
if (hoge) return true; else return false;
というように書かざるをえない、ってだけ。
832:デフォルトの名無しさん
08/02/20 17:15:50
3項演算子に対する嫌悪感って goto のそれに似たものがあるな
833:デフォルトの名無しさん
08/02/20 17:18:18
3項演算子とgotoじゃ全然違うだろ・・・これだからgoto厨は・・・
834:デフォルトの名無しさん
08/02/20 18:46:16
3項演算子はネストしない限りif文よりも可読性高い場合もあるだろ
特に>>831のような単純な分岐の場合は。どうせ見た目で毛嫌いして
るだけだろうけど。
835:デフォルトの名無しさん
08/02/20 18:48:46
>>834
ネストしたって適切なカッコさえつければ問題ないだろ。
特に>>831の場合には積極的に3項演算子を使うべき箇所と思われ。
836:デフォルトの名無しさん
08/02/20 18:56:34
それは再帰とは呼ばない。
ということだけは覚えてほしい
837:デフォルトの名無しさん
08/02/20 18:59:35
if 文のみで書こうとすると異常にネスティングが増えるケースについて
3項演算子をif文とともに使って、ネスティングを削減すると、コードがすっきりするので好きだ。
838:デフォルトの名無しさん
08/02/20 19:16:21
例えばループで書くと
foo() {
cond = true
while (cond) {
・・・
・・・
if (...) {
cond = false
}
・・・
・・・
}
}
みたいな構造で、condのようなスコープの広い変数が
必要になるのが、再帰で処理するように書き直せば、
foo() {
・・・
・・・
if (!...) {
foo()
}
・・・
・・・
}
で済む、かもしれない、ってこと。
839:デフォルトの名無しさん
08/02/20 19:19:27
>>836
再帰かどうかが、returnがif文の中か3項演算子の外かで左右されるとでも?
840:デフォルトの名無しさん
08/02/20 19:33:38
>>838
でっていう
841:デフォルトの名無しさん
08/02/20 19:48:45
>>838
いや、皆が問題にしてるのはそういうことではなく
while (cond) {
int i;
....
}
みたいなスタック操作の無駄のことと思われ。
842:デフォルトの名無しさん
08/02/20 21:19:37
末尾再帰でもないのに、それは・・・
843:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/20 22:24:12
末尾再帰をgotoにするのはコンパイラのお仕事。
845:デフォルトの名無しさん
08/02/21 02:28:28
再帰使うならgotoはいらん。
(再帰を中断するときには使うかもしれん)
846:デフォルトの名無しさん
08/02/21 05:40:03
つかそれはdo{}while(..);
847:デフォルトの名無しさん
08/02/21 07:36:46
>>843が全然末尾再帰になっていない件について
848:goto使わなければそれがいい派
08/02/21 10:34:02
>>751
まあ、そういうコードが含まれているプログラムの中には
脆弱性だのバグだのいっぱい含まれているものだ。
セキュリティについて、潔癖で有名なDJBですら、結構gotoを
多くつかう。 まったく使わないで終わらせた作品としては
は、比較的私家版パッチの突っ込みが少ない publicfile くらい。
後は山のようにgoto文があってDJBは嫌いだという人間もいる。
849:デフォルトの名無しさん
08/02/21 10:37:28
>>841
{} がつくと何でも変数スコープを狭く取りたがるつか、
同じ変数を使いまわしてもバグにならないというか、
単たる手抜きか。
850:デフォルトの名無しさん
08/02/21 14:08:08
pascalみたいに手続きの最初で全部まとめて宣言しろ
851:デフォルトの名無しさん
08/02/21 15:58:33
>>841
それも違うだろ。それくらい最適化でどうにでもできる。
852:デフォルトの名無しさん
08/02/21 20:22:54
>>845
ハァ?再帰からgotoで抜けるだぁ?
これだからgoto厨は…
853:デフォルトの名無しさん
08/02/21 21:49:55
再帰からgotoどころかlongjmpだってしちゃうぜ!
854:デフォルトの名無しさん
08/02/21 21:59:56
よーし、俺はexitだ。
855:デフォルトの名無しさん
08/02/21 22:41:57
いいこと思いついた。
お前ら俺のプログラムのケツにストリームデータ流し込んで実行してみろ。
856:デフォルトの名無しさん
08/02/21 22:50:35
>>855
えっ!お前のケツにすとりーむでーtlk;ghklj;
857:デフォルトの名無しさん
08/02/22 07:15:04
>>851
そんな最適化をされたらデストラクタロギングが使えなくなるじゃないか!!
858:デフォルトの名無しさん
08/02/22 13:10:22
>>857
コンストラクタ・デストラクタが呼ばれなくなるような最適化なんて行われるわけないだろ。
少なくともC++では。
859:デフォルトの名無しさん
08/02/22 19:14:27
いずれ呼ばれるにしても、呼ばれるタイミングは変わるかもよ?
860:デフォルトの名無しさん
08/02/22 22:05:58
>>859
どこの規格無視コンパイラだ?
861:デフォルトの名無しさん
08/02/22 23:47:10
gotoを使う想定でロジックを組むなら、それを分かりやすく図示する方法を発明してから
にしてほしい。そうじゃないとレビューする気にもなれない。
ここで出たようなgotoを使った書き直しの例なら、gotoを使ってないロジックを例えば
NSチャートとかで書いた方が、とてもとても分かりやすくて人にも説明し安いだろう。
チームメイトにロジックを説明するようにお願いてフローチャートをもってこられたら、
とりあえずバケツもって廊下に立っててくれるようにお願いしちゃうな。
システムが使われなくなるまでその人が死なずに内容も忘れずに保守するってのが保証さ
れてたとしても、仕事ではそんなロジックは受け入れ難いな。
だいたい現実的にgotoを使った方が良い場合ってのが、想定しづらい。
リソースだのコードサイズだののためのためにgotoを使うってのは、やらないと用件が
満たせないからって理由で、設計とかコーディングとかのさらに後に最適化フェーズを
設けてそこでやるんなら認めなくもないが、元からgotoを使うのが正しい場合なんての
を考慮しながらロジックを考えるような人とは一緒に仕事はできないなぁと思う。
なんでそんな書き方になってるか説明するための資料も作んないといけないし、仕事が
増えるばっかりだ。段階的抽象化とか物事を整理するとかに興味がないかできない人な
んだなとしか思えない。
誰かが事故にあってもリカバリがきくような状態を維持しようと思ったら、少しくらい
冗長になっても、なるべくわかりやすい設計&実装にしたいって思うのは普通だと思う
んだがなぁ。
862:デフォルトの名無しさん
08/02/22 23:56:49
わたしはソース読み力がありません。
まで読んだ。
863:デフォルトの名無しさん
08/02/23 06:15:25
>>862は>>861を読む力がありません
まで読んだ。
864:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/23 06:43:29
>>864
もうそれ飽きた。いいかげん空気読め、アフォ。
866:デフォルトの名無しさん
08/02/23 06:45:43
各GetResourceの前にifつけてやって、
処理4
867:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/23 06:58:18
俺の感覚だと、読んだだけで「ああ失敗なんだな」って分かる>>864のが好きなんだよね。
あとネストが深くならないのが。
869:デフォルトの名無しさん
08/02/23 07:02:22
>>868
処理そのものがネスト構造になっているんだから、
コードもネストしたほうが実態がわかっていいんじゃねーの?
870:デフォルトの名無しさん
08/02/23 07:03:52
>>863
なにがそんなに悔しいの?
871:デフォルトの名無しさん
08/02/23 07:05:33
↓いつものgdgdな展開へ・・・
872:デフォルトの名無しさん
08/02/23 07:05:36
>>869
なるほどねー。
>>870
いや別に。リソース確保でネストさせるのが嫌いだってだけで。
873:デフォルトの名無しさん
08/02/23 07:07:28
自演シッパイ、オツwwww
874:デフォルトの名無しさん
08/02/23 07:08:19
gdgdだな
875:デフォルトの名無しさん
08/02/23 07:08:50
>>872
リソース確保の条件がネストしているのだから、
コードもネストしたほうが実態がわかっていいんじゃねーの?
876:デフォルトの名無しさん
08/02/23 07:09:53
アンカー打ち間違える奴は、gotoでもラベル打ち間違えるに決まってる件について。
877:デフォルトの名無しさん
08/02/23 07:10:19
>>875
なるほどねー。
878:デフォルトの名無しさん
08/02/23 07:11:50
>>876
>>870の>>863を>>869に読み間違えてたわwww
879:デフォルトの名無しさん
08/02/23 07:12:06
処理1~3にもよるだろう。
短いならいいけど、長ければネストしたくないって人もいるだろう。
あと、エラーならその場で関数から抜けたいタイプのひともいるし、
あれだけじゃなんとも。
880:デフォルトの名無しさん
08/02/23 07:12:17
あ、上の>>869は>>868ねwwwww
881:デフォルトの名無しさん
08/02/23 07:13:09
わざとだろwwww
882:デフォルトの名無しさん
08/02/23 07:14:03
>>881
>>878⇒>>880はねwwww読み間違えてたのはホント。
883:デフォルトの名無しさん
08/02/23 07:14:41
gdgdだーwww
884:デフォルトの名無しさん
08/02/23 07:15:37
>>879
ネストしたくなきゃ、
if (p1 && p2 && ...) {
とすればいいだけなんじゃ?
885:デフォルトの名無しさん
08/02/23 07:19:58
>>879
たった3つの解放だけなんだから、解放をマクロにしちゃって
goto failedのかわりにFreeAll; return NULL;しちゃってもいいな。
いずれにせよ、このネタはもうイトフユだろ。
886:デフォルトの名無しさん
08/02/23 07:47:58
ネストするなとか、あいかわらず後出しジャンケンなんだね、goto厨は…
まあその後出しジャンケンも>>885で残念賞なわけだがw
887:デフォルトの名無しさん
08/02/23 07:52:42
↑と、ここまでいつものgdgdな展開ですた。
888:デフォルトの名無しさん
08/02/23 08:06:03
嫌goto厨は「異議あり対案なし」であることが証明されました。
889:デフォルトの名無しさん
08/02/23 08:25:52
>>882
リアルでアンカー読み違える香具師がgotoを使うのは
キ チ ガ イ に 刃 物
890:デフォルトの名無しさん
08/02/23 08:27:06
>>888
gotoを使わない対案ならこの短い間に3つも出ましたが何か?
891:デフォルトの名無しさん
08/02/23 08:31:07
「出る」と「出す」の違いくらいわかってもいいとおもうぞ。
892:デフォルトの名無しさん
08/02/23 08:47:16
>>891
おいおい、>>888の主語は「嫌goto厨は」なんだから、
gotoを使わない対案が出ていればそれで十分に反証になるだろw
893:デフォルトの名無しさん
08/02/23 09:25:38
自分の他人の区別さえつかないのか、かわいそうに。
894:デフォルトの名無しさん
08/02/23 09:32:55
他人が書こうが誰が書こうがgotoを使わない対案であることに何の変わりもないが?
895:デフォルトの名無しさん
08/02/23 09:37:31
嫌goto厨は「異議あり対案なし」であることが証明されました。
896:デフォルトの名無しさん
08/02/23 09:58:53
>>895
gotoを使わない対案ならこの短い間に3つも出ましたが何か?
897:デフォルトの名無しさん
08/02/23 10:01:08
それがなにか?
898:デフォルトの名無しさん
08/02/23 10:06:18
いいよ~gdgdいいよ~
899:デフォルトの名無しさん
08/02/23 10:09:56
864のgotoは不要ということで。
900:デフォルトの名無しさん
08/02/23 10:39:25
俺の感覚だと、見た瞬間に 864>>>867 なんだがなあ。
えーとさ。FAILEDっていうラベルの存在自体が
「物凄くソースコードの見通しを良くする、これ以上無い最高のコメント」
だと思うんだよ。
901:デフォルトの名無しさん
08/02/23 10:51:29
>>900=>>864 オツw
902:デフォルトの名無しさん
08/02/23 10:55:29
>>901
goto派が一人しかいないと思ってるなら、
君はたった一人のgoto厨に向かって何を必死に反論しているのかしら?w
903:デフォルトの名無しさん
08/02/23 10:59:26
goto派が一人しかいないなんて話、どこの脳内議論から降ってきたのだろうか・・・
脳ミソがスパゲッティになってるんじゃないの?
904:デフォルトの名無しさん
08/02/23 11:00:48
ラベルに適切な英語名を振れない低学歴が吠えてるだけ
905:デフォルトの名無しさん
08/02/23 11:02:13
1000までgdgd
906:デフォルトの名無しさん
08/02/23 11:05:46
>>900
FAILEDなんてラベル、>>864にはないんだけど・・・
ラベルも扱えない香具師がgotoを使うのは
キ チ ガ イ に 刃 物
907:デフォルトの名無しさん
08/02/23 11:06:50
すげぇ、TYPOも許容しないほどの厳格な議論なのかと思ったら
ただの罵り合いじゃん。
908:デフォルトの名無しさん
08/02/23 11:08:20
gotoを適切に使うことで見通しよく書けているコードなど
オープンソースソフトウェアを少し読めばいくらでも見つかるし
まともなプログラマならばgotoを使うべきコードパターンというのを
イディオムとして持っている
が
業務の中で頭の固い奴を説き伏せてまで良いコードを書こうとは
思わないので仕事では適当にwhileやifをネストさせてその場限りの
コードをぐちゃぐちゃに書く。保守性など知らない
とりあえず「見た目上構造化」しておけばよいのだからそれ以上
考えても無駄無駄無駄。所詮は仕事
909:デフォルトの名無しさん
08/02/23 11:11:14
>>908
ifをネストさせない対案も複数出ているが?
さあ、今度はどんな条件を後出しするのかなwwwwwww
910:デフォルトの名無しさん
08/02/23 11:11:36
という思想で書き散らかされたプログラムに
腐れUMLと自動生成された糞doc、スパイスとして捏造されたテスト報告書をくっつければ
ほら高品質ソフトウェアの出来上がりでござい
911:デフォルトの名無しさん
08/02/23 11:14:22
if (p1 && p2 && ...) {
馬鹿馬鹿しく肥大化した分岐条件
goto failedのかわりにFreeAll; return NULL;
馬鹿が思いつきで定義する糞マクロ
イイヨイイヨー
912:デフォルトの名無しさん
08/02/23 11:26:33
>>861
>誰かが事故にあってもリカバリがきくような状態を維持しようと思ったら、少しくらい
>冗長になっても、なるべくわかりやすい設計&実装にしたいって思うのは普通だと思う
>んだがなぁ。
設計については正しい。
だが
実装については正しくない。
そしてここは実装について話すスレだよ。
913:デフォルトの名無しさん
08/02/23 11:30:38
goto厨のオナニースレなんだから、まともな論理は通用しないよ > goto自重派
914:デフォルトの名無しさん
08/02/23 11:31:51
>>908
その場かぎりのgotoでグチャグチャになってる>>864にどんな保守性を期待してるのやら。
他人のコードレビュー受けたことないでしょ、君は。
915:デフォルトの名無しさん
08/02/23 11:33:01
>>908
> まともなプログラマならばgotoを使うべきコードパターンというのを
> イディオムとして持っている
それが他人に読まれた時にどんな混乱をもたらすか
考えたこともないのがgoto厨クオリティ
916:デフォルトの名無しさん
08/02/23 11:36:59
whileやifがネストしただけで混乱するようなプログラミング初心者がgotoを使うのは
キ チ ガ イ に 刃 物
917:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/23 11:49:14
だめだここはれべるがひくい
919:デフォルトの名無しさん
08/02/23 11:50:45
864 finally使え
920:デフォルトの名無しさん
08/02/23 11:53:47
>>919 正解ですな。
finallyはスマートポインタ、GC、例外ではないからねえw
921:デフォルトの名無しさん
08/02/23 12:03:48
大域脱出と例外処理には使うかな。
使わなくても書けるけど、特に宗教が無ければ使うよね普通。
922:デフォルトの名無しさん
08/02/23 12:06:04
>>864
p1からp3まで格納するオブジェクトをつくって、
デストラクタでp1からp3を解放しろ。
ところで
> failed:
> if (p4) FreeResource4(p4);
これは何の冗談だ?p4はNULLなはずだが?
923:デフォルトの名無しさん
08/02/23 12:07:23
>>921 特に宗教が無ければそういうのを「例外処理」とは呼ばないよね普通。
924:デフォルトの名無しさん
08/02/23 12:07:24
あさってのほうこうをむいているぞきみは
925:デフォルトの名無しさん
08/02/23 12:11:13
>>283
そうやって評論家ばかり集まって何も生み出さないから日本は駄目なんだよ
926:デフォルトの名無しさん
08/02/23 12:11:33
>>922
ほんと、>>867のように書いてみれば、failed:に来た場合p4はNULLだということに気付くはずなのに、
ツギハギだらけの思考で書いたんだろうな、>>864は。
927:デフォルトの名無しさん
08/02/23 12:11:39
誤爆
928:デフォルトの名無しさん
08/02/23 12:13:43
誤爆だが、このスレの実情を的確に表現した名文だ。
929:デフォルトの名無しさん
08/02/23 12:18:21
goto乱用厨が出すコード例はほとんどgoto慎重派によって対案が出されている。
なのにgoto乱用厨は次から次へとほとんど同じようなコードを出してくる。
>>864のパターンはこのスレだけでも何度も出てきている。
いくら対案を出しても、
「オプソ探せばいくらでも例はあるモン、goto使ったほうがいいモン」
と言って駄々をこねる。
結論: goto乱用厨=ゆとり脳。
930:デフォルトの名無しさん
08/02/23 12:23:10
その対案は改善でなく改悪だという意見が何度も出ていますが?
931:デフォルトの名無しさん
08/02/23 12:26:34
tesu
932:デフォルトの名無しさん
08/02/23 12:28:14
>>930
アンカー打ちまちがえたりラベル打ちまちがえたりする
オッチョコチョイさんからねwww
933:デフォルトの名無しさん
08/02/23 12:28:46
p4 = GetResource4(p3);
のあとlこ
if (p4) FreeResource(p4);
が書かれていない件
934:デフォルトの名無しさん
08/02/23 12:31:05
>>933
へえお前はfreeしたポインタを返すのか。なかなか凄いな
935:デフォルトの名無しさん
08/02/23 12:32:28
ここで結局932のような攻撃しかこないのが駄目
内容のある議論の入口にすら立てない
936:デフォルトの名無しさん
08/02/23 12:35:20
相手の技量もわからず内容のある議論ができるわけもなし
933みたいな素人が知ったかぶりで自説を語るのが2ch
937:デフォルトの名無しさん
08/02/23 12:36:08
ところで
> failed:
> if (p4) FreeResource4(p4);
これは何の冗談だ?p4はNULLなはずだが?
938:デフォルトの名無しさん
08/02/23 12:36:27
まぁ、そんなスレもそろそろ終盤。
うめ。
939:デフォルトの名無しさん
08/02/23 12:36:52
恥ずかしい間違いを指摘されても別人のふりで再登場だしな
実際このスレもせいぜい4,5人の素人が回してるだけだろ
940:デフォルトの名無しさん
08/02/23 12:36:52
>>934
それがgoto厨クオリティ
941:デフォルトの名無しさん
08/02/23 12:39:03
goto 禁止 とか適当なキーワードでぐぐれば
このスレを読む1%の労力でこのスレを読む100倍の内容が得られる
942:デフォルトの名無しさん
08/02/23 12:39:11
>>930
finallyについては?
デストラクタについては?
さあ、finallyやデストラクタを使った方法が改悪だというレスへのアンカー示してみろよ。
943:デフォルトの名無しさん
08/02/23 12:40:19
>>942
例外やスマートポインタやGC禁止って言ってるところで
finallyだのデストラクタだの、なぞなぞはお前のガキ相手にやってろ
944:デフォルトの名無しさん
08/02/23 12:41:37
>>930
余計なif (p4) FreeResource(p4);が消えた点だけでも
>>867は>>864よりも優れているが?
945:デフォルトの名無しさん
08/02/23 12:42:34
>>943
あのー、finallyは例外でもスマートポインタでもGCでもないんですがwww
君、プログラミング言語に関する知識が決定的に不足してるんじゃない?
946:デフォルトの名無しさん
08/02/23 12:44:24
>>944
ありうる状態や制御の流れについての理解を促すというのも
構造化プログラミングの利点の1つだな。
簡単にgotoに逃げちまうと>>864のようなお粗末なコードになる。
947:デフォルトの名無しさん
08/02/23 12:44:47
>>945
例外処理機構を備えていなくてfinallyだけ持っている言語を挙げよ
948:デフォルトの名無しさん
08/02/23 12:46:26
>>943
アンカー示せないわけね。
まあ示してもどうせまた打ち間違えるだろうけど。
949:デフォルトの名無しさん
08/02/23 12:46:35
945は947に対して逃げて次は別人のふり
950:デフォルトの名無しさん
08/02/23 12:47:20
>>947
単に現代的な言語なら例外もfinallyも持ってるというだけの話だろ。
何をマヌケな事をぬかしているのやら…
951:デフォルトの名無しさん
08/02/23 12:48:12
>>949 他人がみな自分と同じ行動を取るとは限らないのだよ、おマヌケさんw
952:デフォルトの名無しさん
08/02/23 12:48:53
throwしなければ例外「は」使っていないからfinallyはいいじゃん
とかね。
finallyやデストラクタと言った奴は軽いネタだったと思うんだが
ネタがネタとして扱われない議論厨の厨っぷりに呆然
953:デフォルトの名無しさん
08/02/23 12:54:20
>>952
finallyと例外機構は実装としてほとんど独立なんだけど…
実際、finally句が実行されるのは例外の時だけじゃないし。
try…catchとの類似で混同してる人が多いけど。
gotoたまに使う派として恥かしいんでROMやめてレスしてみた。
954:デフォルトの名無しさん
08/02/23 12:55:17
>>951
そんなのはどうでもいいよ。
問題なのは945(か他の誰かでもいいけどさ)が
947 に正面から答えられるかどうかだけ。
だいたい、945がちゃんと知識を持って書いてるなら、
そういう言語をすぐに答えれば逆に俺が大恥を書くことになる。
実は何の知識も無いくせに知ったかぶりで煽ってるから
すぐにケツをまくって格好悪く逃るハメになるのさ。
955:デフォルトの名無しさん
08/02/23 12:55:59
しかし、マジレスが浮かばれないスレなので、それも燃料にされてしまう悲しさ・・・
↓具体化してください、どーぞ。
956:デフォルトの名無しさん
08/02/23 12:58:28
次スレ
スレリンク(tech板)
957:デフォルトの名無しさん
08/02/23 12:58:42
↑具が大きい
958:デフォルトの名無しさん
08/02/23 13:00:03
>>954
まあ落ち着いて>>950でも読んでみたら?
959:デフォルトの名無しさん
08/02/23 13:00:38
もう技術的な話は出尽くしていて後は
2chリロードするしか生きがいのないクズどもが
goto使う・使わない人間の人間性叩きしかやってないし
次はマ板でやれよ。
960:デフォルトの名無しさん
08/02/23 13:01:57
いろんな文法の変更を試している人がいるから、その中のひとつとして考えてみる
961:デフォルトの名無しさん
08/02/23 13:02:39
tesu
962:デフォルトの名無しさん
08/02/23 13:03:11
gotoは何も悪くない。
悪いのはラベルだ。
963:デフォルトの名無しさん
08/02/23 13:03:22
>>958
「例外もfinallyも持っている言語で>>864のようなコードを書くこと」
について議論してたの?
964:デフォルトの名無しさん
08/02/23 13:03:59
技術的な話はあめぞうが生まれる前から出尽くしているような気が。
965:デフォルトの名無しさん
08/02/23 13:04:03
次スレ
スレリンク(tech板)
966:デフォルトの名無しさん
08/02/23 13:06:59
>>963
わざわざ具体的な例を挙げて「使用不可」と断りを入れてるぐらいだから、
そこに挙げられていないものはデフォルト使用可なんじゃねーの?
いいかげんにしないとまた「条件後付け」と指摘されるぞw
967:デフォルトの名無しさん
08/02/23 13:08:31
まあこのスレの大半の奴はgoto行番号でプログラムを書いた経験なんてないだろ?
構造化以前を実体験として知らない年代の人がgoto議論なんてするもんじゃないよ。
それは別にレベルの高い低いじゃなくて、時代が違うというだけ。
968:デフォルトの名無しさん
08/02/23 13:11:34
代入を恐れず使う兵共が継続やモナドを語るスレきぼんぬ
969:デフォルトの名無しさん
08/02/23 13:12:46
>>966
わざわざ例外だのGCだのと言うぐらいだから、
少なくともC限定の話だとは思えないよな。
970:デフォルトの名無しさん
08/02/23 13:15:05
while文を恐れず使う兵共が再帰やgotoを語るスレきぼんぬ。
971:デフォルトの名無しさん
08/02/23 13:15:25
forやwhileも十分見通しが悪い再帰で書け
972:デフォルトの名無しさん
08/02/23 13:15:53
安易に破壊的代入を使う奴は素人
973:デフォルトの名無しさん
08/02/23 13:16:25
忘れられたデストラクタたん、かわいそス
974:デフォルトの名無しさん
08/02/23 13:16:37
ここはひとつmapで。
975:デフォルトの名無しさん
08/02/23 13:18:20
急にム板らしくなってきた
976:デフォルトの名無しさん
08/02/23 13:25:26
tes
977:デフォルトの名無しさん
08/02/23 13:26:34
goto hell;
978:デフォルトの名無しさん
08/02/23 13:28:16
hell:
goto heaven;
979:デフォルトの名無しさん
08/02/23 13:29:55
>>963
スレタイ読め。
このスレは、finallyや多重breakを語るスレだ。
finallyを対案に使って何が悪い?
980:デフォルトの名無しさん
08/02/23 13:32:28
てs
981:デフォルトの名無しさん
08/02/23 13:34:50
g-gg-g-gg-g-gg-gg--
982:デフォルトの名無しさん
08/02/23 13:40:48
>>979 それは正論だがもう遅い。皆帰ってしまったよ。
983:デフォルトの名無しさん
08/02/23 13:42:09
goto jail
984:デフォルトの名無しさん
08/02/23 13:44:18
goto mental_hospital;
985:デフォルトの名無しさん
08/02/23 13:45:59
それは元ネタがわからん
986:デフォルトの名無しさん
08/02/23 14:16:01
ってst
987:デフォルトの名無しさん
08/02/23 14:18:12
>>967
あるよ。
でも「構造化以前に開発経験のある者」に限定するなら、レスの98%位が不合格だ。
今現在もコードを書いている人間が語るから面白いのさ。
988:デフォルトの名無しさん
08/02/23 14:22:40
俺も行番号でgotoとか書いていたし、現在でもコードを書いているが、
このスレの99%のレスは落第だと思うな。
989:デフォルトの名無しさん
08/02/23 14:24:30
生め
990:デフォルトの名無しさん
08/02/23 14:25:42
関数って考えがなかったからな
サブルーチンはgotoかgosubでしか実装できなかったろ
991:デフォルトの名無しさん
08/02/23 14:31:29
>>990
でもNEXT J, Iとかはあったな。うめ。
992:デフォルトの名無しさん
08/02/23 14:34:04
gosubは理解するのに時間かかったな・・・
993:デフォルトの名無しさん
08/02/23 14:34:04
test
994: ◆.CzKQna1OU
08/02/23 14:34:33
te
995:デフォルトの名無しさん
08/02/23 14:34:59
俺は次すれでもthrowしまくるぜ
996: ◆84g/KG3Nug
08/02/23 14:35:11
st
997:デフォルトの名無しさん
08/02/23 14:35:17
DEF FUNみたいのもあったな。方言か?うめ
998:デフォルトの名無しさん
08/02/23 14:35:41
next
999:デフォルトの名無しさん
08/02/23 14:36:01
.
1000:デフォルトの名無しさん
08/02/23 14:36:20
goto 1
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。