我只是通過Mark Probst's diploma thesis瀏覽和stumpled在下面的代碼:遞歸返回類型
typedef void* cont(void);
for (;;)
{
cp = (cont*)(*cp)();
}
我敢肯定,劇組應該讀(cont)
,不(cont*)
,因爲他解釋說:
的函數希望做適當的尾部調用返回函數地址被稱爲
和cont
已經是一個指針函數類型。所以讓我們將該行更改爲:
cp = (cont)(*cp)();
現在我想知道,我們該如何擺脫演員?可以定義cont
,因此它會返回cont
? typedef
cont
將如何?我們是否需要幫手類型來實現這一點?這是不可能的嗎?
因此,Charles或Arkku的答案都不會讓你知道你爲什麼假設不正確? – Will 2011-01-14 14:41:01