编译cpp文件时出错
Error when compiling cpp file
可能重复:
C++:malloc:错误:从"void*"到"uint8_t*"的转换无效
你好,
我有这个小功能
Uint32 moveSprite(Uint32 interval, void *param)
{
SDL_Rect* spritePos = param;
spritePos->x++;
return interval;
}
这里的问题很简单,我使用的是代码块,当我把这个文件保存为C文件时,它编译起来没有问题,但一旦我把它保存为C++文件,我就会出现以下错误:
error: invalid conversion from 'void*' to 'SDL_Rect*'|
有人知道这里出了什么问题吗?
您的代码是有效的C,而不是有效的C++。你需要为它添加一个显式的强制转换来编译
任一C样式:
SDL_Rect* spritePos = (SDL_Rect *)param;
或更多C++风格:
SDL_Rect* spritePos = static_cast<SDL_Rect *>(param);
如果可能的话,更好的解决方案是更改参数类型。尽可能避免void *
!
您需要将无类型指针强制转换为一个类型。例如:
SDL_Rect* spritePos = static_cast<SDL_Rect*>(param);
阅读C++中的铸造。
相关文章:
- 读取文件的最后一行并输入到链接列表时出错
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 在 C/C++ 中打开驻留在 "/sys/" 下的文件时出错
- 在头文件中定义变量不会出错
- 如何在多写入器情况下对文件支持的共享内存中的大页面出错
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- 生成文件中隐式规则中的 -c 标志出错
- 编译时出错 - 链接.cpp和头文件
- 从人员矢量插入和读取文件时出错
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 猫鼬 - 包含标准C++库文件时出错
- 在f2c.h文件中定义min()max()宏时出错
- ASIOSDK;从hostsample.cpp生成mex文件时出错
- 使用emscripten将c++文件转换为wasm时出错
- 将文本从一个文件复制到另一个c++流时出错
- 在C++目录中搜索文件的函数输出中出错
- 编译包含LLVM API标头的C++文件时出错
- MySQL C++连接器:添加符号时出错:文件格式无法识别