我是初学者,所以请保持简单。

无论如何,我有一个这样定义的结构:

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


我有一个传递这种结构的函数:

  void importCard(card deck[52]);


问题是,如果我在main()中定义该结构,则编译器在函数声明时(在main之上)不知道什么是“卡”。如何在不将结构定义为全局的情况下解决这个问题?

最佳答案

将类型定义为“全局变量”很好,因此只需在文件顶部定义struct类型。



顺便说一下,请注意

void importCard(card deck[52]);


几乎从来没有这样写过,因为编译器只是在其中丢弃52(因此在源代码中包含它会产生误导)。

相反,它被写为例如

void importCard(card deck[]);


为了更全面,我应该提到通过使用std::vector而不是原始数组可以使编码变得容易得多,然后该函数将是例如

vector<card> importCards();

关于c++ - struct作为C++中的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14760986/

10-11 18:14