【发布时间】:2017-09-17 20:46:18
【问题描述】:
这段代码只是为了测试我对结构数组访问的了解。当我执行这段代码时,它给了我两个为参数初始化的错误。请帮助我了解错误并解决此问题。 我试图重用已经被某人解决的代码。我关于用参数 Param_u 参数填充结构的问题
#include <iostream>
#include <stdio.h>
#include <string.h>
#define ARRAY_COUNT(arr) (sizeof (arr) / sizeof *(arr))
typedef union {
struct { // Function parameters
int *array;
size_t size;
};
struct { // Function return value
float mean;
int Median;
};
} Param_u;
int main() {
int array_1[] = {1, 2, 3, 4, 5};
int ret1, ret2;
// Fill the Struct with parameters
Param_u param = {
.array = array_1,
.size = ARRAY_COUNT(array_1),
};
return 0;
}
【问题讨论】:
-
prog.cpp: In function 'int main()': prog.cpp:28:5: error: too many initializers for 'Param_u' };
-
clang 也会出错。见现场演示here。您使用的是哪个版本的 clang?
-
标准 C++ 没有指定的初始化器
-
@TestEngineer:您正在使用哪个 C++ 编译器并告诉我们该编译器的版本?
-
@WorldSEnder:在 Godbolt 上使用
-pedantic-errors选项,然后编译会失败!!!