【问题标题】:C declare an array for a struct inside a structC为结构内的结构声明一个数组
【发布时间】:2020-09-09 03:52:58
【问题描述】:

所以我有这样的事情:

struct cat{
    int breed;
    enum state status;
    ...    

    struct{
        int catNumber;
        ...
    } feederOperations[MAX_FEEDER];
}cats[MAX_CATS];

如果代码没有意义,请不要担心,我想知道的是我应该/如何声明内部结构的新一维数组?

【问题讨论】:

  • 嗯?你刚刚做到了。
  • 我的意思是如果我需要一个单独的另一个函数?也不是那种像二维数组,所以它绑定到猫[]?或者我可以要求 feederOperations[] 只是把它当作一个普通的一维数组吗? @ikegami
  • @PapaSheng 您可以使用与feederOperations 相同的语法或您需要的任何其他数据类型声明任意数量。

标签: arrays c struct


【解决方案1】:

一旦你删除了内部结构的匿名并给它一个名字。

C 中的内部结构没有特殊的作用域规则,这意味着struct cat 的作用域与struct feederOp 的作用域相同。

struct cat{
    int breed;
    enum state status;
    ...    

    struct feederOp {
        int catNumber;
        ...
    } feederOperations[MAX_FEEDER];
}cats[MAX_CATS];

因此,您可以在任何需要的地方创建struct feederOp 类型的变量,如下所示。

struct feederOp var1;

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    相关资源
    最近更新 更多