函数指针,默认参数为C

时间:2010-05-18 20:13:58

标签: c

请参阅,我有两个函数,一个用于获取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参数。

2 个答案:

答案 0 :(得分:3)

我不确定你想做什么,但是如果你想将inputoutput修复为某个预定义值(因为你说它们不是运行时参数),那么最简单的解决方案应该编写一些使用正确参数调用“真实”函数的包装函数。例如:

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的(其中一个定义)。