私はこのコード行を持っています、
newCust.idNumber == ID;
IDの値はstring型であり、すでに割り当てられています。newCustは構造体の名前であり、idNumberは構造体の文字列です。IDの値を構造体のID番号に割り当てたいのですが、この行がコードは「効果のないステートメント」です。私はEclipseを使用しており、Cプログラミングの初心者です。
これは、==
2つの値を比較し、その比較の結果を破棄するためです。このような式ステートメントはCでは完全に合法ですが、非常に珍しいものであり、多くの場合、何かを間違って入力したことを示すものとして機能します。そのため、コンパイラはそれについて警告します。
編集:
=も試してみましたが、このエラーが発生しました。タイプ
char[60]
からタイプに割り当てると、互換性のないタイプになります。char *
このような文字列を割り当てることはできません。次のようにを使用する必要がありますstrcpy
。
strcpy(newCust.idNumber, ID);
ヌルターミネータと一緒newCust.idNumber
に収まるのに十分な長さであることを確認してください。つまり、の場合、mustの値は59文字以下である必要があります。ID
newCust.idNumber
char[60]
ID
==
等しいかどうかをチェックします。これは代入演算子ではありません。
そして、あなたはチェックの戻りコードをチェックしないので、Eclipseは(当然のことながら)あなたに怒鳴ります。
比較して結果を捨てているからです。あなたはおそらく欲しかった
newCust.idNumber = ID;
単一の等号に注意してください。