Как насчет
#define ROTATIONS {1.0f, 2.5f, 3.0f, 4.0f, 5.0f, 6.0f}
fla_algo_config_t config_alt = {20.0f,
20.0f,
ROTATIONS,
mock_error_callback,
nullptr};
Если вам все еще нужно rotations[]
, вы все равно можете сделать
float_t rotations[6] = ROTATIONS;
Если вы хотите использовать список инициализации, вам необходимо использовать фигурные скобки. Смотрите, например здесь .
Следовательно, вы не можете просто передать rotations
, потому что это не список инициализации, а массив.
Другой вариант, если вам не нравится #define
:
void initFlaAlgoConfig(fla_algo_config_t& config, float_t (&rotations)[6]) // FYI: The 6 should not be hard coded ;)
{
// or use memcpy()
for(int i = 0; i < 6; ++i)
{
config.thirdMember[i] = rotations[i];
}
}
Тогда это может работать так:
float_t rotations[6] = {1.0f, 2.5f, 3.0f, 4.0f, 5.0f, 6.0f};
fla_algo_config_t config = {20.0f,
20.0f,
{0}, // default, will be overwritten in initFlaAlgoConfig()
mock_error_callback,
nullptr};
initFlaAlgoConfig(config, rotations);
Однако, это будет стоить вам времени выполнения.