阅读杂项。与 SDL 开发相关的教程 我发现了两个不同的示例,它们做同样的事情,但方式不同。从代码“安全性”和可维护性的角度来看,我想知道您认为这两者中的哪一个是正确的。
在第一个示例中,程序员根本没有使用断言,但代码看起来不错(至少在我看来):
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);
}
在第二个示例中,程序员 [other] 使用了不同的方法,例如(代码不完全是复制粘贴):
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 条件(来自第一个示例)吗?
什么是正确的策略(如果有的话)?