用c++传递SDL对象的最佳方式
Best way to pass SDL objects in c++
我用SDL在C++中开始了一个小游戏。我一直在研究指针和参考文献,我理解其中的差异。
int main(int argc, char* argv[])
{
SDL_Renderer* renderer = NULL;
TTF_Font* font = NULL;
renderer = SDL_CreateRenderer(window, -1, 0);
if(renderer == NULL)
{
return 1;
}
font = TTF_OpenFont("OpenSans.ttf", 12);
if(font == NULL)
{
return 1;
}
texture = renderText(...)
return 0;
}
SDL_Texture* renderText(...)
{
}
这是我程序的一部分,现在我需要将渲染器和字体对象传递给renderText()函数。我的问题是,我应该将它们作为指针(它们已经是指针了)还是作为引用传递?
这就是我认为的样子:
SDL_Texture* renderText(SDL_Renderer* renderer,...)
{
}
renderText(renderer,...)
或
SDL_Texture* renderText(SDL_Renderer &renderer,...)
{
}
renderText(*renderer,...)
稍后在renderText()函数中,我必须将SDL_Renderer的指针传递到其他SDL函数中,因此我必须使用&再次在第二种情况下。
只要您在处理SDL对象,就应该将它们保留为指针,因为当您将它们传递回SDL函数时,您只需要将它们转换回指针。在大多数情况下,您应该认为指向SDL资源的指针是不透明的。
&
运算符。因此,在您的示例中最好使用指针,但更好的方法是创建一个小型SDLC++包装器。
相关文章:
- 在c代码之间共享数据的最佳方式
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 在reactor中存储eventHandlers的最佳方式是什么
- 在AVX通道中混洗的最佳方式
- 从 T 创建 std::future 的最佳方式<T>
- C++:使用 std::unique_ptr 访问重载运算符++的最佳方式?
- 对列表列表中的元素进行分组的最佳方式
- 利用 GPU 的最佳方式
- 使用 QT C++过滤大数据的最佳方式
- 算法设计:用边界数字表示 2D 网格的最佳方式,以C++?
- 在C++中共享键值对的最佳方式
- 为Catch2中的外部文本文件指定路径的最佳方式
- 代表Quarto棋盘游戏棋子的最佳方式
- 等待线程的最佳方式是什么
- 将uint8_t*buffer和size_tbufferlen从C++传递到C中的API函数的最佳方式是什么
- 创建控制台菜单C++的最佳方式
- 只显示片段着色器的最佳方式是什么
- 复制文件的最佳方式是什么,以便我可以在复制过程中轻松取消复制?