uochocoの日記: ぶさいく ) ; д ; ( ぶさいく 8
日記 by
uochoco
C言語の話。else の前で改行するのは変だといわれた……
case 1:
if ( 全部改行 == TRUE )
{
}
else
{
}
case 2:
if ( できるだけ改行を減らした ){
}else{
}
case 3:
if ( ifとelseを同じ列におきたい ){
}
else{
}
で、case 3 は、「分岐予測が外れる」ので嫌だ、と、いわれた――そんなことで分岐予測してたんですかっ!? ミ ゚ 〇゚ミ
いやね……
1. "}else{" という字のならびが ブ サ イ ク 。「);o;( セマイ」みたいな顔文字を想い出して笑いがとらまない。
2. else 以降が短くて、"else printf("だめでした\n");" で終わってしまうとき、頭に中カッコがついてると カ ッ コ ワ ル イ 。ぱっとみ中カッコとも else ともつかないのでみ落としてしまうかもしれない。
}else printf("だめでした\n");
3. 結局、if --- then --- else --- endif 型の記述をする言語の経験があるか慣れているかの問題かもしれない。
if parsley=NULL then
……
else
……
endif
case 1:
if ( 全部改行 == TRUE )
{
}
else
{
}
case 2:
if ( できるだけ改行を減らした ){
}else{
}
case 3:
if ( ifとelseを同じ列におきたい ){
}
else{
}
で、case 3 は、「分岐予測が外れる」ので嫌だ、と、いわれた――そんなことで分岐予測してたんですかっ!? ミ ゚ 〇゚ミ
いやね……
1. "}else{" という字のならびが ブ サ イ ク 。「);o;( セマイ」みたいな顔文字を想い出して笑いがとらまない。
2. else 以降が短くて、"else printf("だめでした\n");" で終わってしまうとき、頭に中カッコがついてると カ ッ コ ワ ル イ 。ぱっとみ中カッコとも else ともつかないのでみ落としてしまうかもしれない。
}else printf("だめでした\n");
3. 結局、if --- then --- else --- endif 型の記述をする言語の経験があるか慣れているかの問題かもしれない。
if parsley=NULL then
……
else
……
endif
elseの位置ではなく{}の位置 (スコア:1)
case2、case3はブロックの始点と終点のインデントがずれるので、ながーいブロックがばりばり入り組むようになると後で読むときに泣きます。
しもべは投稿を求める →スッポン放送局がくいつく →バンブラの新作が発売される
Re:elseの位置ではなく{}の位置 (スコア:1)
>インデント基準は{}にあわせるのが読みやすいので、case1ですねー。
そりゃそうだけど改行が増えちゃう。case 3 で else の前一行だけぜいたくするのは else が必ずしも現れると限らないからで、else が必ず現れるなら、私も "}else{" 使います。
#コメントありがとうございました
分岐予想をするのは誰? (スコア:1)
結局清書programのindentとか、 emacs の CC mode とかを使うようになってからは自己流を通すのは大変なんで tool に従うってことで。
今は 2) だな。変だ。} が不要な場合は書かないことしているので、else の位置がそろわない。でも画面内の密度を上げるためにはしかたがない。
if { [set lay [dbStripBoxZ $stBoxPtr]] != 1 } continue
とかやってtabの量を節約するとかもやっちゃう。
ところで分岐予想をするのは誰? 分岐頻度を予想して、if の順序を手で直すとか..
Re:分岐予想をするのは誰? (スコア:1)
長いのいっぱい書く人は "}else{" 派が多い(そうでないとやってられない)みたいねえ。
>ところで分岐予想をするのは誰?
"}\nelse" は変だと言った人。長い if 文がようやく終わって合流したと思ったら次に else があって「また分岐した」/「まだ分岐中か」と思い、そのときたまたま脳内に転がってた「分岐予測」という単語を拾っちゃったんでしょう。
#コメントありがとうございました
case3 (スコア:1)
私は case3派です。特に意味はないけど。
{}の対応はエディタ(Meadow)に頼ってます。
case1でも2でも、長くなれば、目だけで{}の対応を見るのは
結構辛いかと。
あと、{}の省略だけは絶対にしませんねぇ。
Re:case3 (スコア:1)
私と同じ流儀ですか。ちょうど三人三様にばらけたあたり、みなさん合わせてくれたのかな? ミ ゚ o゚ミ
>長くなれば、目だけで{}の対応を見るのは結構辛いかと。
"}}}}}}}}" と続かれるとわけわからなくなりますわね。いっそ
#define if if(
#define then ){
#define else }else{
#define endif }
他(forやwhileやswitchについても)徹底的にやっちゃおうか。うーむ ミ゚仝 ゚ "ミ
#コメントありがとうございました
うっひ~ (スコア:1)
あちきは、case1派。Cじゃなくて、Pascal出なもので。
さすがに、
#define BEGIN {
#define END }
まではやりませんが。
Copyright (c) 2001-2014 Parsley, All rights reserved.
Re:うっひ~ (スコア:1)
>NULLを代入されたので、
※ デバッグやテストで臨時に追加する変数名に、luca とか pase とか haruna とか、他人のハンドルによくお世話になってますー。「子音 母音 子音 母音……」の順だとローマ字入力で慣れてるせいもあって楽だし、あとで不要になったときに消すときがまた快感 ミ゚m ゚ ミ プ