结构作为C++中的参数
struct as a parameter in C++
我是初学者,所以请保持简单。
无论如何,我有一个这样定义的结构:
struct card
{
char rank[10];
char suit[10];
char color;
bool dealt;
char location[10];
};
我有一个传递这种结构的函数:
void importCard(card deck[52]);
问题是,如果我在main()中定义结构,那么编译器在函数声明时不知道什么是"卡"(在main之上)。在不将结构定义为全局结构的情况下,如何绕过此问题?
可以将类型定义为"globals",因此只需在文件顶部定义struct
类型即可。
顺便说一句,请注意延迟
void importCard(card deck[52]);
几乎从来没有这样写过,因为编译器只是丢弃了其中的52
(所以在源代码中使用它有点误导)。
相反,它被写为例如
void importCard(card deck[]);
更详细地说,我应该提到,通过使用std::vector
而不是原始数组,编码变得容易得多,然后函数将是例如
vector<card> importCards();
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 函数调用中参数的顺序重要吗
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 使用不带参数的函数访问结构元素
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何使用Luacneneneba API正确读取字符串和表参数
- 在派生函数中指定void*参数
- 视图中的参数推导失败:take_while
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 使用指向成员的指针将成员函数作为参数传递
- 没有名称的C++模板参数
- 如何将enable-if与模板参数和参数包一起使用