1. ホーム
  2. 整数

警告: 代入がキャストエラーなしに整数からポインタを作成します。

2022-01-24 10:12:27

if((in=fopen("read.in","r"))==NULL)

演算子の優先順位に注意を払わなかったため、警告が発生しました:代入はキャストエラーなしで整数からポインタを作りますが、それを見つけるのに時間がかかりました

元の文は次のようなものでした。

if(in=fopen("read.in","r")==NULL)

解析します。は==より優先順位が高いので、fopen("read.in","r")==NULL式が先に計算されて、その結果がTRUEまたはFAILUERになります。int型はinがchar*なのでchar*への代入は警告:キャストせずに整数からポインタにすること。

修正しました。

if((in=fopen("read.in","r"))==NULL)

これはOKです。