gpt4 book ai didi

c - 从 void* 中获取 float

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:56 25 4
gpt4 key购买 nike

<分区>

我正在尝试重新编程 printf 函数(大学项目),但 %f 给我带来了问题。我像这样使用函数指针:

void (*fct[15])(void*) =
{printfs, printfc, printfd, printfd, printfl, printfx, printfX,
printfo, printfb, printfS, printfu, printfp, printff};

当使用正确的标志时,将调用这些函数之一。一个典型的 printfd 将接收一个 void* 变量作为参数并将这样做:

int nbr = (int)var;     //var is a void* type variable
my_put_nbr(var); //handmade function wich displays numbers

问题是,出于某种奇怪的原因,当我对 printff 做同样的事情时,它没有工作

float nbr = (float)var;

我收到消息了

error: pointer value used where a floating point value was expected float nbr = (float)var

我也试过这样的事情。如果我有

my_printf("%f", var);     //with var = 12.34

然后我调用函数 printff() 应该做的事情:

int nbr1 = (int)(var / 1);
int nbr2 = (int)(var % 1);

所以我通常有 nbr1 = 12 和 nbr2 = 34 然后我会在两者之间显示一个“。”但它仍然不起作用,我收到消息:

error: invalid operands to binary * (have ‘void *’ and ‘int’) int nbr1 = (int)(var*1)

我没有ideer所以如果你有任何线索,请告诉我。另外,我不能使用 printf() 之类的命令,这是本练习的规则,所以不要告诉我解决方案隐藏在这里。

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