我在我的代碼中使用'g_timeout_add_seconds'。但是,當我編譯被示出以下錯誤警告:傳遞參數2的'g_timeout_add_seconds'刪除
警告:傳遞的 'g_timeout_add_seconds'
g_timeout_add_seconds(1,message_cb,數據)參數2; //使用
gboolean message_cb(名單*數據)//原型
我在我的代碼中使用'g_timeout_add_seconds'。但是,當我編譯被示出以下錯誤警告:傳遞參數2的'g_timeout_add_seconds'刪除
警告:傳遞的 'g_timeout_add_seconds'
g_timeout_add_seconds(1,message_cb,數據)參數2; //使用
gboolean message_cb(名單*數據)//原型
不要擺脫的警告 - 修復它。
的g_timeout_add_seconds
第二個參數是一個函數指針(GSourceFunc
)如下:
gboolean (*GSourceFunc) (gpointer user_data);
和gpointer
是指向void
您使用List* data
代替它並不熱衷。
堅持原型,如果你通過List*
然後在回調中投它。
^^返回類型是gboolean,參數是一個指針。我的回調原型有什麼問題?什麼是GSourceFunc。你能給我舉一些例子 – user1410356
@ user1410356:你傳遞一個'List *'而不是'void *'。你需要改變你的回調函數,以便它使用'void *',然後使用'reinterpret_cast'在回調函數中從'void *'強制轉換爲'List *'。有關'GSourceFunc'的詳細信息,請參閱(http://developer.gnome.org/glib/2.30/glib-The-Main-Event-Loop.html#g-timeout-add-秒)以及使用'reinterpret_cast'這裏有一些優秀的答案(http://stackoverflow.com/questions/573294/when-to-use-reinterprecast-cast) –
我如何刪除警告 – user1410356
凹凸......任何人都可以幫忙? – user1410356