我知道每個人都討厭gotos。在我的代碼中,出於我已經考慮並且很舒服的原因,他們提供了一個有效的解決方案(即,我不是在尋找「不這樣做」作爲答案,我理解您的保留意見,並理解爲什麼我使用它們無論如何)。是否可以將標籤的地址存儲在變量中並使用goto跳轉到該變量?
到目前爲止他們一直很棒,但我想要擴展功能,這樣我就必須能夠存儲指向標籤的指針,然後再去找它們。
如果此代碼工作,它將代表我需要的功能類型。但它不起作用,30分鐘的谷歌搜索沒有透露任何東西。有沒有人有任何想法?
int main (void)
{
int i=1;
void* the_label_pointer;
the_label:
the_label_pointer = &the_label;
if(i--)
goto *the_label_pointer;
return 0;
}
你能解釋一下爲什麼你需要將這些標籤存儲指針? – 2009-11-22 06:23:10
我正在實現一個有限狀態機,基於Remo.D在這篇文章中的回答http://stackoverflow.com/questions/132241/我的版本已經發展到比這更多地涉及,但這代表了基本結構體。到目前爲止,它一直很有效,但我想通過在狀態轉換時設置的一些變量或通過回調或某物訪問某些上下文來訪問調用狀態和當前狀態。 – 2009-11-22 06:36:01
重複http://stackoverflow.com/questions/938518/c-c-goto – qrdl 2009-11-22 07:52:52