After SDL has been initialized with SDL_Init you may initialize uninitialized subsystems with SDL_InitSubSystem. The flags parameter is the same as that used in SDL_Init.
/* Seperating Joystick and Video initialization. */ SDL_Init(SDL_INIT_VIDEO); . . SDL_SetVideoMode(640, 480, 16, SDL_DOUBLEBUF|SDL_FULLSCREEN); . /* Do Some Video stuff */ . . /* Initialize the joystick subsystem */ SDL_InitSubSystem(SDL_INIT_JOYSTICK); /* Do some stuff with video and joystick */ . . . /* Shut them both down */ SDL_Quit();