Union Structure数组的初始化太多了

时间:2017-04-21 02:00:08

标签: c++ pointers structure

这段代码只是为了测试我对结构数组访问的了解。当我执行这段代码时,它给了我两个很多初始化参数的错误。请帮助我理解错误并解决此问题。 我试图重用已经由某人解决的代码。关于用参数Param_u param填充Struct的问题

set.seed(1)
matrix(rnorm(5 * 5000, 1, 0.5), ncol = 5, nrow = 5000)

1 个答案:

答案 0 :(得分:0)

这不是标准的C ++。您使用的是匿名struct&指定的初始化器(C99功能)。 C ++并不支持这一点。在clang ++&上启用-pedantic-errors选项g++。有关详细信息,请参阅this问题。您正在使用特定于编译器的扩展,因此您的程序不可移植。

查看实时演示here

clang++提供以下诊断:

Error(s):

source_file.cpp:12:5: error: anonymous structs are a GNU extension [-Werror,-Wgnu-anonymous-struct]
    struct {    // Function parameters
    ^
source_file.cpp:16:5: error: anonymous structs are a GNU extension [-Werror,-Wgnu-anonymous-struct]
    struct {    // Function return value
    ^
source_file.cpp:28:9: error: designated initializers are a C99 feature [-Werror,-Wc99-extensions]
        .array = array_1,
        ^~~~~~~~~~~~~~~~
source_file.cpp:29:9: error: designated initializers are a C99 feature [-Werror,-Wc99-extensions]
        .size = ARRAY_COUNT(array_1),
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
source_file.cpp:24:16: warning: unused variable 'ret2' [-Wunused-variable]
    int  ret1, ret2;
               ^
source_file.cpp:27:13: warning: unused variable 'param' [-Wunused-variable]
    Param_u param = {
            ^
source_file.cpp:24:10: warning: unused variable 'ret1' [-Wunused-variable]
    int  ret1, ret2;
         ^
3 warnings and 4 errors generated.
相关问题