因为你不能从一个函数返回一个自动存储数组,我建议你返回一个std::vector<sc_uint<8>>
。它本质上只是将您的sc_uint<8>
值包装在一个易于使用和移动的动态数组中。
然后只需根据您的标准push_back
返回您想要返回的值。vector
例如:
std::vector<sc_uint<8>> arrayfill(struct){
std::vecotr<sc_uint<8>> array;
array.reserve(10); // Reserves space for 10 elements.
array.push_back(struct.a); // This will be the first element in array, at index 0.
array.push_back(struct.b); // This will be the second element at index 1.
...
if (struct.trigger == false){
array.push_back(0);
}
else
{
array.push_back(struct.j);
}
// At this point, array will have as many elements as push_back has been called.
return array;
}
使用std::vector::insert
添加一系列值:
array.insert(array.end(), &values[3], &values[6]);
values
一些数组在哪里。上面会将索引 3 到索引 5 的值(不包括范围,索引 6 处的值不会插入)插入values
到array
.