当我在and64平台编译“从大小不同的整数转换为指针”: 我似乎无法弄清楚。下面是其中一条线路有麻烦:获取:警告(AMD64)
static gboolean scan_freq(gpointer data)
{
static gint start, mom, max;
gint dir = (gint)(data); /// <- cast to pointer from integer of different size
if (!max) {
max = (FREQ_MAX - FREQ_MIN) * STEPS;
}
if (radio_check_station(gtk_adjustment_get_value(adj)/STEPS) || (start > max)) {
start = mom = 0;
radio_unmute();
timeout_id = 0;
return FALSE;
}
if (!mom) {
mom = gtk_adjustment_get_value(adj);
}
if (mom > FREQ_MAX*STEPS)
mom = FREQ_MIN*STEPS;
else if (mom < FREQ_MIN*STEPS)
mom = FREQ_MAX*STEPS;
else
mom = mom + dir;
start += 1;
gtk_adjustment_set_value(adj, mom);
return TRUE;
}
和:
extern int mom_ps;
void preset_menuitem_activate_cb(GtkMenuItem *menuitem, gpointer user_data)
{
preset* ps;
mom_ps = (int)user_data; /// <- cast to pointer from integer of different size
g_assert(mom_ps >= 0 && mom_ps < g_list_length(settings.presets));
ps = (preset*)g_list_nth_data(settings.presets, mom_ps);
gtk_adjustment_set_value(adj, ps->freq * STEPS);
}
获取:cast to pointer from integer of different size
警告
您的意思是解除引用某些东西吗? – 2012-08-06 01:46:23
你确定*这是你得到的消息吗?使用类似的代码,我可以“将*从*指针*转换为*不同大小的整数”,这可以准确描述问题。 gcc(你使用的是gcc,对吧?)不太可能会出现这样的错误。 – 2012-08-06 02:45:18
为什么你要将'gpointer'的值转换为'gint'呢?这没有多大意义。 – 2012-08-06 02:46:27