SDL2 Pointers c and c++



我们怎么可能在像win = SDL_CreateWindow("Hello World", posX, posY, width, height, 0);这样的指针中存储一些函数?如果它不是一个函数,那它是什么,因为它看起来像一个函数。第二,这些是指向成员函数的指针,是什么类型的指针?我的意思是SDL_Window *win; SDL_Renderer *renderer;。我怎么可能在没有任何符号的情况下就这样声明呢?你能给我发一个伪代码来理解这个指针是如何容纳这个"的吗;函数";?

include "SDL.h"
int main(int argc, char *argv[])
{
int posX = 100, posY = 100, width = 320, height = 240;
SDL_Window *win;
SDL_Renderer *renderer;
win = SDL_CreateWindow("Hello World", posX, posY, width, height, 0);
renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);
return 0;
}

实际上win不是指向函数的指针,而是指向结构类型SDL_Window的指针。语句win = SDL_CreateWindow("Hello World", posX, posY, width, height, 0)表示您使用参数("Hello World", posX, posY, width, height, 0)调用函数SDL_CreateWindow。此函数作为所使用参数的结果,返回一个指向在此函数结构SDL_Window内动态分配的指针。

函数指针可以用以下结构声明:

SDL_Window * (*functionName)(const char*, int, int, int, int, int) = SDL_CreateWindow;

比这样使用:

win = functionName("Hello World", posX, posY, width, height, 0);

在这种情况下,functionName指向SDL_CreateWindow函数,用于调用SDL_CreateWindow

最新更新