首页 > 解决方案 > 为什么我们要在大括号之外留下一些结构变量?

问题描述

我试图struct用 C 来理解。我无法理解下面的这个定义。我们为什么要离开aCarddeck[ ]出去*cardPtr?将它们包括在内和将它们排除在外有什么区别?

 struct card {
    char *face;
    char *suit;
 } aCard, deck[52], *cardPtr;

标签: c

解决方案


你把事情搞混了。Astruct card有成员facesuit。但是使用该类型的变量有 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 {...}辩论)。


推荐阅读