Как использовать C assert, чтобы сделать код более безопасным?

Чтение разное учебники, связанные с разработкой SDL I 'Мы нашли два разных примера, делающих одно и то же, но по-другому. Мне было интересно, какой из двух вы считаете правильным, если судить с точки зрения кода "безопасность" и ремонтопригодность.

В первом примере программист неЯ вообще не использую assert, но код выглядит нормально (по крайней мере, на мой взгляд):

int main(){
        SDL_Surface *screen;

        /** Initialize SDL */
        if(SDL_Init(SDL_INIT_VIDEO)!=0){
                fprintf(stderr,"Unable to initialize SDL: %s",SDL_GetError());
        }
        atexit(SDL_Quit);

        /** Sets video mode */
        screen=SDL_SetVideoMode(640,480,16,SDL_HWSURFACE);
        if(screen==NULL){
                fprintf(stderr,"Unable to set video mode: %s",SDL_GetError());
        }

        return (0);
}

Во втором примере программист [другой] использует другой подход, что-то вроде (код нет копировать-вставить):

int main(){
        SDL_Surface* screen;

        /** Initialize SDL */
        assert(SDL_Init(SDL_INIT_VIDEO)==0);
        atexit(SDL_Quit);

        /** Sets video mode */
        screen=SDL_SetVideoMode(640,480,16,SDL_HWSURFACE);
        assert(screen!=NULL);

        return (0);
}

Это нормально, чтобы "замена" в условиях if (из первого примера) с утверждениями, как во втором примере?

Какие'правильная стратегия (если естьс какой)?

Ответы на вопрос(4)

Ваш ответ на вопрос