【发布时间】:2011-03-31 11:17:38
【问题描述】:
看 我正在使用 glib,而 gpointer 是 void * 的 typedef。 (我猜 glib 做这种类型是为了让事情更清楚)。
当我进行信号连接时,我必须将数据作为 void 指针 (void *) 传递。
所以代码是(类似这样的):
...
g_signal_connect (object, function, (gpointer) data);
...
如果我使用 short 作为数据类型,我会收到这样的 gcc 警告消息:
警告:从整数转换为指针 大小不一
如果我使用 int 作为数据类型,我不会收到任何警告。
但是在这两种情况下,一切都运行良好,那么,为什么我使用 short 会收到此警告?
【问题讨论】:
-
所以我必须先将它(或所有内容)转换为 int,然后再转换为 void 指针?
标签: c