【发布时间】:2021-04-17 10:44:04
【问题描述】:
我正在尝试使用 OpenGL 学习 c++。 OpenGL 在 x 和 y 轴上从 -1 到 1 的坐标系上进行渲染。我正在尝试制作一个将像素转换为openGL坐标的函数。我有这个代码:
float pixelsToCoordinates(int pixels[2]) {
float r[2] = { (pixels[0] - windowWidth / 2) / (windowWidth / 2) * windowWidth / windowHeight, (pixels[1] - windowHeight / 2) / (windowHeight / 2) };
return r;
}
我在cpp return r; 收到此错误:
严重性代码描述项目文件行抑制状态 Error (active) E0120 返回值类型与函数类型不匹配 OpenGL-Engine
我认为这与数组在 c++ 中的工作方式有关。这是什么问题?提前致谢。
【问题讨论】:
-
如果你想返回一个数组,你的返回类型必须是一个数组,而不是
float。 -
对
std::array做一些研究 -
阅读好 C++ programming book 并查看 this C++ reference。如果允许,编译您的 C++ 代码,使用 GCC 调用为
g++ -Wall -Wextra -g,然后使用 GDB 调试器。 -
不能从 C++ 函数返回数组(除非它是
std::array),
标签: c++ implicit-conversion return-type function-definition incompatibletypeerror