私は現在C言語を学んでおり、次の2つのコードが異なった動作をするのか、単なるスタイルのものなのかを知りたかったのです。私の教授は彼のノートに次のコードをしたがif文の中にfopenの結果を代入する
...
FILE * pFile;
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
{ some code }
...
:ただ、これは単なるスタイルであるかどうかを知りたいと思った
...
FILE * pFile
if ((pFile = fopen("myfile.txt","r")) == NULL)
{ some code }
...
は、次のコードを持っているいくつかのソースを見てみると
異なるプログラマの好みやif文の中にreturn/set行を置く利点があるかどうかを判断する。
2番目のスタイルは 'if(condition &&(pFile = fopen(" foo "、" r "))= NULL)'のような状況に利点があります。言及する価値があるかもしれません。 –
@ダニエルフィッシャー、はい。その回線は短絡評価を使用しており、ファイルは 'condition'が真の場合にのみ開かれることを指摘しておきます。 –