【发布时间】:2019-03-31 15:51:57
【问题描述】:
前言:我必须使用 C89,而且我知道它没有像 C99 那样指定的初始值设定项。但是,如果数组被包装在结构中,我的理解是它可以以与初始化程序相同的格式重复更改。它似乎适用于 MINGW C89。
typedef struct fscratch{
float contents[SIZEFDT];
};
int main()
{
fscratch fs;
fs = (fscratch){400.0, 440.0, 480.0, 500.0, 530.0, 560.0 }; // <--MSVC error here
memcpy(pt1->flow, fs.contents, sizeof(pt1->flow));
fs = (fscratch){161.0, 157.0, 153.0, 150.0, 146.0, 142.0};
memcpy(pt1->psi_disch, fs.contents, sizeof(pt1->psi_disch));
}
Mingw C89 工作正常,没有错误, MSVC 报错:
错误 C2059:语法错误:'{' 错误 C2143:语法错误:缺少 ';' '{' 之前的错误 C2143:语法错误:缺少 ';'在'}'之前
1000 行程序的其余部分只需稍作调整即可正常工作。这条线是怎么回事?
【问题讨论】:
标签: visual-c++ c89