如下typedef struct StateStruct {void (*FuncPtr)( void * ptr );}SS;這里void (*FuncPtr)和( void * ptr )這兩個指針有什么關系嗎,誰能幫我詳細解釋一下這個結構體的定義,謝謝 阿!
3 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
1234567 | typedef struct StateStruct { void (*FuncPtr)( void * ptr ) f; }SS; //定義了一個新的類型,這個類型是個結構體,類型名是SS //下面聲明一個SS類型的變量 SS s; //s就是一個SS類型的變量 |
1234567 | void (*FuncPtr)( void * ptr ); //是一個類型名,類型是FuncPtr,這是一個函數指針類型,這個函數指針類型是返回值是void,接受一個void*的指針地址的參數。 //一般使用typedef語法來用 typedef void (*FuncPtr)( void * ptr ); typedef struct StateStruct { FuncPtr fp; }SS; |
承上
123456 | void f( void *ptr) { } //函數f就是一個funcPtr類型的函數。 //可以以下面的方法賦值: s.fp = f; |
1234 | const SS St_StateInit = { ( void (*)( void *))State_Init }; //用下面的寫法會好看很多 const SS St_StateInit = { (FuncPtr)State_Init }; //這是用State_Init來初始化fp的值。 |
- 3 回答
- 0 關注
- 700 瀏覽
添加回答
舉報
0/150
提交
取消