foxiangzun 发表于 2022-2-12 18:33:49

typedef使用报错问题求助

按照老师在《带你学C带你飞》的第 50 课(基础typedef)课程最后的代码来写了一下,结果发现,不用typedef没有任何问题,用了typedef就会报错,具体代码如下:


不用 typedef 代码:

#include <stdio.h>
#include <stdlib.h>

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

int main(void)
{
    struct Date *date;
    date = (struct Date *)malloc(sizeof(struct Date));
    if (date == NULL)
    {
      printf("内存分配失败~!\n");
      exit(1);
    }
    date->year = 2022;
    date->month = 5;
    date->day = 1;
    printf("%d-%d-%d\n", date->year, date->month, date->day);
    return 0;
}

运行结果很顺畅,直接显示了:



下面是用了 typedef 代码的:

#include <stdio.h>
#include <stdlib.h>

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

int main(void)
{
    struct Date *date;
    date = (Date *)malloc(sizeof(Date));
    if (date == NULL)
    {
      printf("内存分配失败~!\n");
      exit(1);
    }
    date->year = 2022;
    date->month = 5;
    date->day = 1;
    printf("%d-%d-%d\n", date->year, date->month, date->day);
    return 0;
}

然后界面上就提示:



注:本机开发环境是 win10,编辑器是 vscode,C/C++编译器用的是 MINGW64

我就有点懵了。。这是完全按照老师的视频里的代码抄的,为啥本地会报错。。求各位大佬指教,谢谢。

jackz007 发表于 2022-2-12 18:40:48

    第 13 行代码
    struct Date *date;
    改为
    Date *date;

foxiangzun 发表于 2022-2-12 20:53:04

jackz007 发表于 2022-2-12 18:40
第 13 行代码

    改为

我这犯的错太低级了{:5_100:},感谢指导{:5_95:}
页: [1]
查看完整版本: typedef使用报错问题求助