Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Wywoływanie funkcji w mainie

Ostatnio zmodyfikowano 2015-02-22 19:08
Autor Wiadomość
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ć?

C/C++
#include <SDL.h>
#include <stdio.h>
#include <iostream>
//Screen dimension constants
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;
}
P-127149
pekfos
» 2015-02-22 18:47:54
Ja tu widzę wywołania wszystkich trzech funkcji.
C/C++
int main( int argc, char * args[] )
{
    if( !init() )
Daleko nie trzeba szukać.
P-127150
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?
P-127151
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ć.
P-127152
kleofasso
Temat założony przez niniejszego użytkownika
» 2015-02-22 19:08:56
ok dzięki za info :)
P-127153
« 1 »
  Strona 1 z 1