为什么在初始化SDL之前先在SDL中声明一个指针?

Why declare a pointer in SDL before initializing SDL?

在这段代码中,我看到他们在初始化 SDL 之前声明了一个指针:

int main(int argc, char* argv[]) {

    SDL_Window *window;                    // Declare a pointer

    SDL_Init(SDL_INIT_VIDEO);              // Initialize SDL2

    // Create an application window with the following settings:
    window = SDL_CreateWindow(
        "An SDL2 window",                  // window title
        SDL_WINDOWPOS_UNDEFINED,           // initial x position
        SDL_WINDOWPOS_UNDEFINED,           // initial y position
        640,                               // width, in pixels
        480,                               // height, in pixels
        SDL_WINDOW_OPENGL                  // flags - see below
);

(可以找到完整代码here

在创建 window 之前声明指针会不会更有条理,这样它会更整洁、更有条理?为什么要提前申报?

如果我猜的话,最好将所有指针都放在一个区域中,这样您就可以一次看到所有指针。还是习惯就好了?

int main()开头声明指针的习惯。 (我在其他源程序中也看到过这种情况,来自示例程序)

没有技术原因需要在 SDL_Init 之前声明一个指针。声明一个指针变量没有任何意义,它只是在堆栈上为该指针保留 space。它可以很容易地在 SDL_Init 之后声明,或者作为调用 SDL_CreateWindow.

的语句的一部分

老实说,我不知道他们为什么在文档中这样说。