我正在尝试使用 pthread
库来计算 n
个斐波那契数,其中 n
的范围可以是 0-1000
。当我尝试将我的 void*
强制转换为 double
时遇到了奇怪的错误。
在我的主函数中,这是我调用计算斐波那契数的函数:
pthread_create(&tid, &attr, calc_fib, (void *)n);
在我的
calc_fib
函数中,我试图使用类型转换:void *calc_fib( void *num)
{
double n;
n = (double)num;
...
然而,当我尝试这样做时,我会得到以下错误:
In function ‘calc_fib’:
error: pointer value used where a floating point value was expected
In function ‘main’:
error: cannot convert to a pointer type
我在C语言中是否无法将
void*
强制转换为 double
,还是我只是做错了?