struct作为C++中的参数

Bob*_*ski 0 c++ parameters struct

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

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

struct card      
  {
  char rank[10];
  char suit[10];
  char color;
  bool dealt;
  char location[10];
  };
Run Code Online (Sandbox Code Playgroud)

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

  void importCard(card deck[52]);
Run Code Online (Sandbox Code Playgroud)

问题是,如果我在main()中定义结构,那么编译器不知道函数声明时的"卡"(主页上面).如何在不将结构定义为全局的情况下解决这个问题?

Che*_*Alf 5

类型定义为"全局" 是很好的,所以只需struct在文件顶部定义类型即可.


顺便说一句,注意到了delaration

void importCard(card deck[52]);
Run Code Online (Sandbox Code Playgroud)

几乎从来没有这样编写,因为编译器只丢弃52那里(因此在源代码中使用它有点误导).

相反,它写成例如

void importCard(card deck[]);
Run Code Online (Sandbox Code Playgroud)

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

vector<card> importCards();
Run Code Online (Sandbox Code Playgroud)