gpt4 book ai didi

c - C 上的 typedef 问题

转载 作者:行者123 更新时间:2023-12-04 06:44:54 26 4
gpt4 key购买 nike

我在 C 上写了一些 ADT:
我有两个文件 date.c and date.h在 date.c 里面我有:

typedef struct Date_t {
int date;
char* month;
int year;

} Date;
在 date.h 里面我有:
typedef Date pDate;
编译器给了我错误:
..\checking.h:15: error: syntax error before "pDate"
有人可以解释一下我的 typedef 有什么问题吗,提前致谢
编辑:
文件一切正常,问题是,当我将结构更改为:
struct Date_t {
int date;
char* month;
int year;

};
并指向:
typedef struct Date_t* pDate;
程序运行良好,所以我想了解其中的区别

最佳答案

您可能在声明 Date 之前就将 pDate 声明为 Date 的 typedef(因为您在标题中创建了 pDate)。

你可以这样做:

typedef struct Date_t {
int date;
char* month;
int year;

} Date;

typedef Date pDate;

都在你的 .c 文件中。

至于你的编辑:

您正在 typedef 中声明结构:
typedef struct Date_t* pDate;

它正在工作,因为您正在声明 struct在您放置 pDate 之前。
typedef /*see this struct here*/ struct /*huh?*/ Date_t* pDate;

对方没有 struct在里面。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com