>  2001/06/07 (木) 00:02:11        [mirai]
> > テーブルジャンプもtableを使ったgotoと言える気がする
> > しかしScheme族曰くifも例外処理も全てcontinuationでなヽ(´ー`)ノ
> いやそういう意味じゃなくて(;´Д`)
> cmp ax, [hoge]
> jnc どっか
> じゃなくなるって意味(;´Д`)

table使っても
jmpl *_switch_table(,%eax,4)
見たいな感じに成るじゃないか

更にはgccならば
#include <stdio.h>

void table_jump(int n) {
  void *goto_table[] = { &&case0, &&case1, &&case2 };
  goto *goto_table[n];
case0:
  printf("case 0\n");
  return;
case1:
  printf("case 1\n");
  return;
case2:
  printf("case 2\n");
  return;
}

int main(void) {
  table_jump(0);
  table_jump(1);
  table_jump(2);
  return 0;
}
のような事がまかり通ってtable jumpはやっぱりgotoですよヽ(´ー`)ノgcc万歳

参考:2001/06/06(水)23時54分19秒