我是初学者,所以请保持简单。
无论如何,我有一个这样定义的结构:
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/