C/C++结构体初始化,为什么这种方式VS2010 和 VS2017报错?

1>已启动生成: 项目: MFCTest2017, 配置: Debug Win32
1>MFCTest2017Dlg.cpp
1>e:\del\del\mfctest2017\mfctest2017\mfctest2017dlg.cpp(167): error C2059: 语法错误:“.”
1>e:\del\del\mfctest2017\mfctest2017\mfctest2017dlg.cpp(169): error C2143: 语法错误: 缺少“;”(在“}”的前面)
1>e:\del\del\mfctest2017\mfctest2017\mfctest2017dlg.cpp(170): error C2059: 语法错误:“}”
1>e:\del\del\mfctest2017\mfctest2017\mfctest2017dlg.cpp(170): error C2143: 语法错误: 缺少“;”(在“}”的前面)
1>已完成生成项目“MFCTest2017.vcxproj”的操作 - 失败。我在linux下,用gcc和g++编译实例都可以。
没有这么初始化的啊
struct A a={1,2}; 就行了
c++ 新标准,2017不支持,百度“指派初始化”
这是匿名结构体,需要c++20支持
你可以用逐行赋值代替
windows下面好像不支持 内核中常见
非常感觉大家,从你们的回答中收益匪浅。有事时间,我研究下ffmpeg在windows下的编译过程,看看”指派初始化“是怎么实现的,如果有结果我在这里回复下。
同样遇到了,把C++语言标准改为C++20就可以了