2017-09-23 111 views
0

考慮以下可變因素C型爲容納不同類型的函數指針

int *a = 0; 
char *b = "string" 

我可以把他們都變成void *hold;
我不爲function pointers.

void (*hello)(char param1, char param2); 
char (*another)(); 

是找到路它甚至有可能將這些2 different types存入一個普通的one如void *?然後用cast來檢索它們?

回答

2

您可以將函數指針轉換爲任何其他函數指針類型並返回。只需選擇一個目標類型,如void (*)(void)。從C99標準:

指向一種類型的函數的指針可能會轉換爲指向另一種類型的函數的指針並返回;結果應與原始指針相等。