初始化结构数组 - C++

马蒂亚·苏里奇奥

我正在尝试用 C++ 初始化一个结构数组。

这是我的结构:

typedef ap_fixed<16,1> ap_fixed_data_type;
typedef struct {

    ap_fixed_data_type real_part;
    ap_fixed_data_type imaginary_part;

} my_data_struct;

这是我的结构数组:

static my_data_struct IFFT_output[1024];

我想使用(如果可能)与标准数组相同的“语法”来初始化我的结构数组,例如:

int my_array[1024] = {0};

这会将我的数组初始化为全 0。

我想要实现的是这样的:

static my_data_struct IFFT_output[1024]={{0,0}};

这段代码应该将每个结构中的每个字段(real_partimaginary_part初始化为 0。使用上面的代码,我得到了这个错误:

抛出“__gnu_cxx::recursive_init_error”实例后调用终止

这似乎是由错误的初始化静态变量引起的(如这里)。

我知道我可以用一个简单的for循环来初始化我的数据,但我想做一些更“紧凑”的事情。

有没有办法用我上面显示的“语法”初始化我的结构数组?

米尔恰·伊斯帕斯

对我来说,这看起来像 C。如果你想使用 C++,你可以:

using ap_fixed_data_type = ap_fixed<16,1>;
struct my_data_struct
{
    my_data_struct()
        : real_part(/*initialization code here*/)
        , imaginary_part(/*initialization code here*/)
    {
    // more initialization code here
    }
    ap_fixed_data_type real_part;
    ap_fixed_data_type imaginary_part;

};

std::vector<my_data_struct> vec(1024);
std::array<my_data_struct, 1024> array;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章