タグ

2009年6月24日のブックマーク (3件)

  • 第4回 "case" の事情 | gihyo.jp

    前回は条件分岐を行うためのEFLAGSレジスタと条件分岐命令について説明しました。 しかし、プログラミングにおける重要な制御構造でありながら、単純な条件分岐では実現できないものとして、C/C++言語で言うところのswitch構文があります。 今回は、このswitch構文について、アセンブラの視点から見てみましょう。 if分岐の限界 たとえば: 変数 "x" に格納された値が0, 1, 2, 3, およびそれ以外の場合に、それぞれ異なる処理を行いたい。 という状況で、あまり手馴れていない人の実装は往々にして以下のようになります。 リスト1 if 分岐による実装 if(x == 0){ .... } else if(x == 1){ .... } else if(x == 2){ .... } else if(x == 3){ .... } else{ .... } 上記の例は、「⁠それ以外」

    第4回 "case" の事情 | gihyo.jp
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    gfx
    gfx 2009/06/24
    shared SVの仕様が違うんだね。5.8ではIVスロットにハッシュ値を保存するのに対して,5.10ではHE*を介して実現しているからか。なるほどー。ちなみにPerlレベルからは見えないので気にしなくてもいい。
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    gfx
    gfx 2009/06/24