我不能声明如何正确地声明一个函数vector,我可以将其作为参数传递给get_operations函数,然后我可以在我之前声明的vector的组件的帮助下调用8个函数。下面是我使用的结构和函数:
void get_operations(void **operations) {
operations[0] = tire_pressure_status;
operations[1] = tire_temperature_status;
operations[2] = tire_wear_level_status;
operations[3] = tire_performance_score;
operations[4] = pmu_compute_power;
operations[5] = pmu_regenerate_energy;
operations[6] = pmu_get_energy_usage;
operations[7] = pmu_is_battery_healthy;
}
2条答案
按热度按时间4ngedf3f1#
1.定义一个函数指针typedef:
typedef void (*function_ptr_t)(void)
。1.相应地修改您的函数:
1.使用typedef创建一个函数指针数组作为函数向量:
function_ptr_t operations[8]
1.将数组传递给
get_operations
。pcrecxhr2#
https://godbolt.org/z/1nTPKd8v1