前幾天看到一個代碼,定義了一個結構體 typedef struct ()
{int a;char b; void (*p)();}test; 然后有一個函式void fun(),在定義了一個結構體陣列并在里面賦值了,test table[10]={{1;3;(*fun)},……};我想問一下賦值成test table[10]={{1;3;fun},……};test table[10]={{1;3;&fun},……};我能理解,但是賦值成這樣test table[10]={{1;3;(*fun)},……};改怎么理解呢,*fun這個怎么理解呢。c語言學的不是很精通,希望有大神幫我分析一下,而且我試了,這三種都可以。
uj5u.com熱心網友回復:
*fun?應該不可以吖。這問題讓我想起來自己對函式在記憶體中的存盤形式,以及呼叫的程序還不清楚。得去刨刨書
uj5u.com熱心網友回復:
結構體里面的void (*p)()是個函式指標,不是一個普通,*fun是函式指標,代表*p。uj5u.com熱心網友回復:
函式指標 放函式地址轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/98648.html
標籤:單片機/工控
上一篇:usb phy的問題
