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 or 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;