雑読。SDL 開発に関連するチュートリアル 2 つの異なる例を見つけました。同じことを別の方法で行っています。コードの「セキュリティ」と保守性の観点から判断すると、どちらが正しいと考えているのでしょうか。
最初の例では、プログラマーは 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);
}
2 番目の例では、[その他] のプログラマーが別のアプローチを使用しています (コードは正確にはコピー アンド ペーストではありません)。
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);
}
2 番目の例のように、(最初の例の) if 条件を assert で「置換」しても問題ありませんか?
正しい戦略は何ですか (もしあれば) ?