首页 > 解决方案 > 如何处理 C 中的 typedef 数据类型(一般来说)?

问题描述

基本上编译器会抱怨未知类型名称“Song_t”,因为数据类型定义是在首次引用之后发生的。

struct Cell { Song_t song;
            struct Cell *pnext;
};

typedef struct Song Song_t;

如果我之前放置 typedef,它可以工作。因此,通常建议将 typedefs 放在每个文件的开头吗?

标签: ctypedef

解决方案


在定义之前,您不能引用 typedef 名称。

要么将 typedef 移到struct Cell定义之前,要么struct Song在定义中使用struct Cell


推荐阅读