0

初心者なので簡単にお願いします。

とにかく、次のように定義された構造体があります。

struct card      
  {
  char rank[10];
  char suit[10];
  char color;
  bool dealt;
  char location[10];
  };

そして、このタイプの構造体が渡される関数があります:

  void importCard(card deck[52]);

問題は、main() で構造体を定義すると、コンパイラは関数宣言時 (main の上) に「カード」が何であるかを認識しないことです。構造体をグローバルとして定義せずにこれを回避するにはどうすればよいですか?

4

1 に答える 1

5

を「グローバル」として定義しても問題ないためstruct、ファイルの先頭で型を定義するだけです。


ところで、デラレーションに注意してください

void importCard(card deck[52]);

そのように書かれることはほとんどありません。なぜなら、コンパイラ52はそこにある を破棄するだけだからです (そのため、ソース コードに含めると少し誤解を招く可能性があります)。

代わりに、例えば次のように書かれています

void importCard(card deck[]);

std::vector徹底するには、生の配列の代わりに使用することでコーディングがはるかに簡単になることに言及する必要があります。関数は次のようになります。

vector<card> importCards();
于 2013-02-07T21:08:04.433 に答える