从void *转换为int

时间:2016-05-30 19:12:12

标签: c++ casting

您好我正在尝试使用

将参数从void *转换为int
id=*((int *)x);

但是我得到的值与x的原始值不同。我读过关于使用intptr_t但是无法理解如何使用它

2 个答案:

答案 0 :(得分:2)

那不是演员,这是一个取消引用。你想要:

jPanel

答案 1 :(得分:1)

您的方法是将void指针转换为int指针,而不是int。你可以直接将void指针强制转换为int,就像这个

一样
int n = (int)p;

但是,这并不能保证适用于所有整数值。

相反,你应该使用intptr_t。将参数类型从void指针更改为intptr_t,并使用上面的强制转换。这保证是便携式的。