> 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秒