c - 为什么我们要在大括号之外留下一些结构变量?
问题描述
我试图struct
用 C 来理解。我无法理解下面的这个定义。我们为什么要离开aCard
,deck[ ]
出去*cardPtr
?将它们包括在内和将它们排除在外有什么区别?
struct card {
char *face;
char *suit;
} aCard, deck[52], *cardPtr;
解决方案
你把事情搞混了。Astruct card
有成员face
和suit
。但是使用该类型的变量有 3 个struct card
,即aCard, deck, cardPtr
.
或者,可以这样写:
typedef struct {
char *face;
char *suit;
} Card;
Card aCard, deck[52], *cardPtr;
// or even
Card aCard;
Card deck[52];
Card *cardPtr;
typedef
看一看:为什么我们要在 C 中如此频繁地键入结构?(它进入了typedef struct { ... } Foo;
vsstruct Foo {...}
辩论)。
推荐阅读
- latex - 背页:是否可以同时选择、删除或移动多个文件?
- python-3.x - 例外:加载数据时获取 URL 失败
- android - 如何使用firebase从kotlin的recyclerview顶部位置获取用户的最新消息
- printing - 如何使用 redmon 和 ghostscript 获取打印参数?
- ionic4 - 使用 SQLite TypeError:无法读取 null 的属性“事务”
- python - 如何从 Python 中的对象数组中访问对象
- terraform - Terraform 和 Azure 数据资源管理器
- excel - 从 2 个工作簿更新匹配值
- syntax-error - 我是否正确理解了该功能及其用途?另外,语法错误?
- arrays - 使用公式来组织具有不同数据量的列