Я начал маленькую игру на C ++, используя SDL. Я искал указатели и ссылки, и я понимаю различия.
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 как о непрозрачных.
SDL — это библиотека C Оба предложенных вами способа будут работать, но в коде C нет ссылок, поэтому вы в конечном итоге будете использовать &
оператор каждый раз, когда вы хотите передать структуру SDL_ в функцию. Так что лучше использовать указатели в вашем примере, но еще лучше было бы создать небольшую оболочку SDL C ++.