3

P1、P2 などの変数を使用して、類似した複数の構造にアクセスするにはどうすればよいですか。数値部分の変数を使用してループ内のサブフィールド ターン、たとえば P1.turn、P2.turn にアクセスできるようにしたいと考えています。コンパイルすると、「エラー: 構造体でも共用体でもないメンバー `turn' の要求」というエラーが表示されます。コードは次のとおりです。

while (((strcat("P", (char)&pplayer_num))).turn == 0){

&pplayer_num は int として始まります。

文字列を構造体にキャストしようとしましたが、他のエラーが発生しました。これはおそらく単純なものであり、助けを見落としているだけであることはわかっています。

4

2 に答える 2

1

変数の名前を動的に計算してからそれらの変数にアクセスする場合、Cは必要な言語ではありません。最も近い近似は、これらの変数(またはさらに良いのはそれらへのポインター)を配列の要素に配置することです。これらはインデックスによって動的に識別できるためです。

于 2012-11-29T18:05:38.010 に答える
0

Cはこのようには機能しません。コンパイル前のコードの外観と、コンパイル後の動作を混同しているようです。むしろ、コンパイル時とランタイムを混在させています。

つまり、理論的には、コードのようなものを使用してCコード(各プレーヤーオブジェクト)を生成できますが、必要な動作を得るには、出力をコンパイルする必要があります。スクリプト言語(Pythonなど)は実行時に値を検索できますが、Cは検索できません。作成した文字列(P1)をP1という名前のオブジェクト/ポインタにマップする必要があるかどうかはわかりません。

于 2012-11-29T18:49:22.683 に答える