-1
我沒有深入這個想法,但我想知道如果語句可以被跳轉表替換。有沒有情況下,如果陳述是不可替代的跳錶?
如果我們有像
if(x = 0)
{
...
}
if(x = 1)
{
...
}
if(x = 2)
{
...
}
我們可以簡單地跳,direcly,到屬於x的值,如果我們有一個表格,表格中每個例程指針例程的組IF。
在如用戶輸入的其他情況,假設我們從stdin讀取一個字符,我們 將不得不像
if(c = 'a')
{
...
}
if(c = 'b')
{
...
}
我們還可以找到基於C
值的方式來索引跳轉表我的問題是,在哪種情況下,用跳轉表替換if是完全不可能的?可以在沒有語句(或等價物)的情況下執行計算
「不可替代」?普通,是的。考慮甚至'if(l> LONG_MAX - 1)'的if(f> PI)',兩者都不能用固定查找表來表示(實際上)。跳轉表僅適用於相對較小的有限固定集*。 – user2864740 2014-09-27 23:10:46
在C中使用'=='而不是'='。 – BLUEPIXY 2014-09-27 23:14:18