c - 嵌套的 typedef 结构

标签 c ansi-c

我在尝试嵌套需要声明为新 var 类型的结构时遇到问题。代码如下——

typedef struct
{
    typedef struct
    {
        int day,
            month,
            year;
    } Date;

    Date manuDate,
         purDate;
    double purPrice;
} Car;

除非我尝试编译它会向我抛出一个错误说

“typedef 之前的语法错误”以及由此导致的一系列其他错误。

这是 C 不能做的事吗?我知道它在没有指针的情况下嵌套结构有问题,但我不确定在这种情况下如何工作......

最佳答案

C 不支持嵌套结构定义。也许您正在查看一些 C++ 代码。

相反,您只需先定义“内部”结构,然后在“外部”结构中引用它。

typedef struct
{
    int day,
        month,
        year;
} Date;


typedef struct
{
    Date manuDate,
         purDate;
    double purPrice;
} Car;

关于c - 嵌套的 typedef 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30020859/

相关文章:

c - 简单的二维

将多维数组转换为另一种类型的多维数组

c - 为什么 Xcode 允许我在任何地方声明 C 变量?

c - ANSI C 和 C99 文字前缀和后缀列表

c - 如何处理链接器错误: error-cannot find -lgcc

c - 将 stdout 重定向到文件在中间停止。 Linux

c - 信号处理程序返回段错误 :11

c - 在 C 中为 2 个数字的最小值定义宏

c - ANSI C 中的匹配单词

c89 - 在链表中搜索节点返回 0x1 指针