在以下文档的第 4-5 页中:
http://www.open-std.org/jtc1/sc22/wg21/docs/ESC_Boston_01_304_paper.pdf
typedef int (* jumpfnct)(void * param);
static int CaseError(void * param)
{
return -1;
}
static jumpfnct const jumptable[] =
{
CaseError, CaseError, ...
.
.
.
Case44, CaseError, ...
.
.
.
CaseError, Case255
};
result = index <= 0xFF ? jumptable[index](param) : -1;
它正在比较 IF-ELSE 和 SWITCH,然后介绍这个“跳转表”。显然,这是三者中最快的实现。它到底是什么?我看不出它是如何工作的?