将double形式(void *)传递给函数

菜鸟

我写了一个接收一个函数void *类型参数,我可以通过该计划char*,并int在接收功能我读什么我的期望。

看起来像:

void __declspec(dllexport) void* func(void *);

接下来,我尝试通过double此处:

double d = 3.14;
(*funcPtr)( (void *)d ); 

但出现错误:

error: invalid cast from type 'double' to type 'void*'

然后,我通过方法将double传递给void参数线程,并尝试这种方式:

double d = 3.14;
double *p_d = (double *)d;
(*funcPtr)( (void *)p_d );

但是还是一样的运气:

error: invalid cast from type 'double' to type 'double*'

我缺少什么以及如何解决我的问题?我认为解决方案是定义几个typedef函数指针。

乔·佩里
double d = 3.14;
double *p_d = &d;

您无需将类型从类型强制转换为需要引用的指针当您需要在指针中使用值时,可以像这样取消引用它。

double new_d = *p_d;

在接收p_d为空指针的函数内部,必须在使用之前将指针强制转换为双指针。

喜欢

void func(void *p_d)
{
    double new_d = *(double*)p_d;
    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章