我已經初始化了一個帶有函數名的靜態結構,如下所示。用函數指針進行靜態結構初始化
我們必須用常量初始化靜態結構。函數名是C中的常量嗎?
struct fp {
int (*fn)();
};
int f1()
{
printf("f1 called \n");
return 0;
}
static struct fp fps = {
.fn = f1,
};
int main()
{
fps.fn();
return 0;
}
如果編譯時沒有任何問題,當初始化結構如下所示。
static struct fp fps = {
.fn = &f1,
};
在C的函數名F1和& F1相同?
你會得到什麼錯誤? –
你的問題是什麼?我不明白最後一行。 – moffeltje
他問''func'是否與'func'相同。答案是肯定的,他們是一樣的,選擇你更喜歡的任何一個。看到這裏:http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work – szczurcio