today=(struct date){07,24,2014};不允许使用类型名

问题遇到的现象和发生背景

c语言温凯课程

问题相关代码,请勿粘贴截图

#include
struct date{
int month;
int day;
int year;
};
int main(int argc,char const *argv[])
{
struct date today;
today=(struct date){07,24,2014};
struct date day;
day =today;
day.year =2022;
return 0;
}

运行结果及报错内容

{”
缺少“;”(在“类型”的前面)
“day”: 未声明的标识符
: 无法从“date”转换为“int”
“day”: 未声明的标识符
“.year”的左侧必须具有结构/联合类型
“day”: 未声明的标识符
“.year”的左侧必须具有结构/联合类型
day”: 未声明的标识符
“.month”的左侧必须具有结构/联合类型
“day”: 未声明的标识符
day”的左侧必须具有结构/联合类型

我的解答思路和尝试过的方法

不知道为什么(struct today)中的struct显示不允许使用类型名

先将today和day初始化

img