请参阅,我有两个函数,一个用于获取char,另一个用于放置这样的char。
void function_get_char (input);
void function_put_char (output);
我有一个指向这些函数的函数指针。
void (*function_operators[])(input_or_output) = {function_get_char, function_put_char};
我需要,当我打电话给我的function_operator时,我想不需要指定我是想要输出还是我的输入。
我是否需要像这样构建我的函数指针?
void (*function_operators[])(input_or_output) = {function_get_char(input), function_put_char(output)};
我该怎么办? 提前谢谢。
请注意
输入或输出参数,不是run_time参数。
答案 0 :(得分:3)
我不确定你想做什么,但是如果你想将input
和output
修复为某个预定义值(因为你说它们不是运行时参数),那么最简单的解决方案应该编写一些使用正确参数调用“真实”函数的包装函数。例如:
void fixed_get_char(void) { function_get_char(input); }
void fixed_put_char(void) { function_put_char(output); }
void (*function_operators[])(void) = {fixed_get_char, fixed_put_char};
答案 1 :(得分:0)
您必须创建一个没有参数的函数,该函数使用参数包装对函数的调用。如果您需要在运行时执行此操作,请查看thunk或trampolines的(其中一个定义)。