[C++] Wywoływanie funkcji w mainie
Ostatnio zmodyfikowano 2015-02-22 19:08
kleofasso Temat założony przez niniejszego użytkownika |
[C++] Wywoływanie funkcji w mainie » 2015-02-22 18:46:22 Otóż mam problem w kodzie z biblioteką SDL. Jednak sam problem nie odnosi się do tej biblioteki. Jakim cudem kod działa, jeżeli funkcje stworzone u góry main-a nie zostały wywołany wewnątrz main-a? jest tylko wywołana funkcja close(). Czy mógłby mi ktoś to wytłumaczyć? #include <SDL.h> #include <stdio.h> #include <iostream>
const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480;
bool init(); bool loadMedia(); void close();
SDL_Window * gWindow = NULL; SDL_Surface * gScreenSurface = NULL; SDL_Surface * gXOut = NULL;
bool init() { bool success = true; if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) { printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() ); success = false; } else { gWindow = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN ); if( gWindow == NULL ) { printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() ); success = false; } else { gScreenSurface = SDL_GetWindowSurface( gWindow ); } } return success; }
bool loadMedia() { bool success = true; gXOut = SDL_LoadBMP( "beznazwy.bmp" ); if( gXOut == NULL ) { printf( "Unable to load image %s! SDL Error: %s\n", "03_event_driven_programming/x.bmp", SDL_GetError() ); success = false; } return success; }
void close() { SDL_FreeSurface( gXOut ); gXOut = NULL; SDL_DestroyWindow( gWindow ); gWindow = NULL; SDL_Quit(); }
int main( int argc, char * args[] ) { if( !init() ) { printf( "Failed to initialize!\n" ); } else { if( !loadMedia() ) { printf( "Failed to load media!\n" ); } else { bool quit = false; SDL_Event e; while( !quit ) { while( SDL_PollEvent( & e ) != 0 ) { if( e.type == SDL_QUIT ) { quit = true; } } SDL_BlitSurface( gXOut, NULL, gScreenSurface, NULL ); SDL_UpdateWindowSurface( gWindow ); } } } close(); return 0; }
|
|
pekfos |
» 2015-02-22 18:47:54 Ja tu widzę wywołania wszystkich trzech funkcji. int main( int argc, char * args[] ) { if( !init() ) |
Daleko nie trzeba szukać. |
|
kleofasso Temat założony przez niniejszego użytkownika |
» 2015-02-22 18:52:40 czyli funkcja wywołuje się w nawiasach if'a tak samo jak i poza nimi, zapisując do zmiennych wartości? |
|
pekfos |
» 2015-02-22 18:53:42 Tak samo jak i w wielu innych miejscach. Ten if sprawdza wartość zwróconą z funkcji - funkcja musi być wywołana, by było co sprawdzać. |
|
kleofasso Temat założony przez niniejszego użytkownika |
» 2015-02-22 19:08:56 ok dzięki za info :) |
|
« 1 » |