作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我在我的 C++ 应用程序中使用这个 C 库,其中一个函数返回 void*。现在我不是纯 C 语言最敏锐的人,但听说 void* 可以转换为几乎任何其他 * 类型。我也知道我希望在这个函数的末尾某处有一个 float 。
所以我将 void* 转换为 float* 并取消引用 float*,崩溃。该死的!我调试了代码,并在 gdb 中让它评估 (float)voidPtr
和 low 并且看到这个值是我期望和需要的!
但是等一下,在编译期间是不可能的。如果我写 float number = (float)voidPtr;
它不会编译,这是可以理解的。
那么现在的问题是,我如何让我的漂浮物脱离这个该死的空洞*?
编辑:多亏了 H2CO3,这个问题已经解决了,但是我看到很多答案和评论出现并且令人失望,我不相信我可以在 gdb 中做 (float)voidPtr。这是屏幕截图。
最佳答案
尝试使用指针:
void *theValueAsVoidPtr = // whatever
float flt = *(float *)&theValueAsVoidPtr;
关于c++ - void*字面意思是float,怎么投?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313658/
1.字面常量 (1)字面意思是啥就是啥,看其表示就可以知道其值和类型。 (2)有值无名,一用来初始化变量,与一种字符相关联。 #include <stdio.h>int main()
我是一名优秀的程序员,十分优秀!