パスワードを忘れた? アカウント作成
563017 journal

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
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  •  個人的にはインデント基準は{}にあわせるのが読みやすいので、case1ですねー。
     case2、case3はブロックの始点と終点のインデントがずれるので、ながーいブロックがばりばり入り組むようになると後で読むときに泣きます。
    --
    しもべは投稿を求める →スッポン放送局がくいつく →バンブラの新作が発売される
    • うお… 今さら感のあるネタにコメントがいっぱいついてた。

      >インデント基準は{}にあわせるのが読みやすいので、case1ですねー。

      そりゃそうだけど改行が増えちゃう。case 3 で else の前一行だけぜいたくするのは else が必ずしも現れると限らないからで、else が必ず現れるなら、私も "}else{" 使います。

      #コメントありがとうございました
      親コメント
  • 昔はいろいろグループ内で議論したり、上司からまとめて、かつ論拠を示せとか言われました。昔の思いで。

    結局清書programのindentとか、 emacs の CC mode とかを使うようになってからは自己流を通すのは大変なんで tool に従うってことで。

    今は 2) だな。変だ。} が不要な場合は書かないことしているので、else の位置がそろわない。でも画面内の密度を上げるためにはしかたがない。

    if { [set lay [dbStripBoxZ $stBoxPtr]] != 1 } continue

    とかやってtabの量を節約するとかもやっちゃう。

    ところで分岐予想をするのは誰? 分岐頻度を予想して、if の順序を手で直すとか..
    • うお… 今さら感のあるネタにコメントがいっぱいついてた。

      長いのいっぱい書く人は "}else{" 派が多い(そうでないとやってられない)みたいねえ。

      >ところで分岐予想をするのは誰?

      "}\nelse" は変だと言った人。長い if 文がようやく終わって合流したと思ったら次に else があって「また分岐した」/「まだ分岐中か」と思い、そのときたまたま脳内に転がってた「分岐予測」という単語を拾っちゃったんでしょう。

      #コメントありがとうございました
      親コメント
  • by sanae (10308) on 2005年07月28日 12時22分 (#773226) 日記
    はじめましてー。

    私は case3派です。特に意味はないけど。
    {}の対応はエディタ(Meadow)に頼ってます。
    case1でも2でも、長くなれば、目だけで{}の対応を見るのは
    結構辛いかと。

    あと、{}の省略だけは絶対にしませんねぇ。
    • by uochoco (25026) on 2005年07月29日 7時43分 (#773750) ホームページ 日記
      うお… 今さら感のあるネタにコメントがいっぱいついてた。

      私と同じ流儀ですか。ちょうど三人三様にばらけたあたり、みなさん合わせてくれたのかな? ミ ゚ o゚ミ

      >長くなれば、目だけで{}の対応を見るのは結構辛いかと。

      "}}}}}}}}" と続かれるとわけわからなくなりますわね。いっそ

      #define if if(
      #define then ){
      #define else }else{
      #define endif }

      他(forやwhileやswitchについても)徹底的にやっちゃおうか。うーむ ミ゚仝 ゚ "ミ

      #コメントありがとうございました
      親コメント
  • by parsley (5772) on 2005年07月29日 15時42分 (#774023) 日記
    NULLを代入されたので、trueを返しておこう。

    あちきは、case1派。Cじゃなくて、Pascal出なもので。

    さすがに、
    #define BEGIN {
    #define END }
    まではやりませんが。
    --
    Copyright (c) 2001-2014 Parsley, All rights reserved.
    • おしさしぶりー ミ ^ ◇^ミノ゙

      >NULLを代入されたので、

      ※ デバッグやテストで臨時に追加する変数名に、luca とか pase とか haruna とか、他人のハンドルによくお世話になってますー。「子音 母音 子音 母音……」の順だとローマ字入力で慣れてるせいもあって楽だし、あとで不要になったときに消すときがまた快感 ミ゚m ゚ ミ プ
      親コメント
typodupeerror

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

読み込み中...