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

时间:2018-07-12 03:04:09

标签: c++ pointers 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中找到)

在创建窗口之前声明指针是否会更有条理,只是这样会更整洁和更有条理?为什么要事先声明?

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

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

1 个答案:

答案 0 :(得分:2)

出于技术原因,您无需在SDL_Init之前声明指针。声明指针变量没有任何意义,它只是在堆栈上为该指针保留空间。可以在SDL_Init之后轻松声明它,也可以在调用SDL_CreateWindow的语句中声明它。

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