Re: [問題] typedef enum 的 void* 用法請益
推 remember11:謝謝大大詳解,感激。不過我稍早之前亂try,有試出來了 08/27 17:26
→ remember11:我是把我註解error那兩行改成 08/27 17:26
→ remember11:if(data == (void*)eGOPLAYER_STATE_PAUSE) 08/27 17:27
→ remember11:我是亂試出來的,我不熟C++,指標更是新手 08/27 17:28
→ remember11:所以為什麼這樣解可以,會不會有危險,我也不清楚@@ 08/27 17:28
我想這樣應該是錯的,
void cb_func(eGOPLAYER_CALLBACK_TYPE type, void *data)
在上面的引數已經告訴你data是一個指標,
在列舉eGOPLAYER_STATE的宣告裡,eGOPLAYER_STATE_PAUSE等於2,
所以你if(data == (void*)eGOPLAYER_STATE_PAUSE)這一行的意思是:
"當data位址等於0x00000002的時候",我想這條件不太可能有辦法成立。
從名稱來看應該是要取data指標所指向的資料才對,
所以我認為要改成 if(*(eGOPLAYER_STATE*)data == eGOPLAYER_STATE_PAUSE)
才是比較合理的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.72.125
推
09/01 00:39, , 1F
09/01 00:39, 1F
→
09/01 00:39, , 2F
09/01 00:39, 2F
→
09/01 00:40, , 3F
09/01 00:40, 3F
→
09/01 00:40, , 4F
09/01 00:40, 4F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章