gpt4 book ai didi

c - 获取: 'cast to pointer from integer of different size' warning (amd64)

转载 作者:行者123 更新时间:2023-11-30 14:24:24 33 4
gpt4 key购买 nike

当我在and64平台编译时:我似乎无法弄清楚。这是它有问题的一行之一:

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);
}

获取:从不同大小的整数转换为指针警告

最佳答案

这实际上是一个令人困惑的错误消息,因为您似乎正在从指针进行转换

但是,该错误基本上是提示类型不兼容。

假设您实际上已将整数作为指针传递(Gnome 特别禁止尝试以整数类型存储指针),您可能应该使用实际的类型转换宏,如 GPOINTER_TO_INT

如果该指针是指向整数的指针,则应该引用它而不是强制转换它,例如:

gint dir = *((gint*)data);

事实上,它只发生在 AMD64 上,因为在这种平台上,指针和整数的大小不同,一个是 64 位,另一个是 32 位。

关于c - 获取: 'cast to pointer from integer of different size' warning (amd64),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11821648/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com