我尝试使用通过宏生成函数的代码,如下所示:
文件 A(提供的文件我不能在这里更改任何内容):
#define FUNCTION_GENERATOR(NUM) \
void MyGeneratedFunctionNo##NUM##(void) \
{ \
another_function_call(NUM); \
} \
FUNCTION_GENERATOR(1)
FUNCTION_GENERATOR(2)
FUNCTION_GENERATOR(3)
文件 B(我想使用指向文件 A 中生成的函数的函数指针的文件):
typedef void (*function_ptr) (void);
function_ptr func_array[3];
func_array[0] = MyGeneratedFunctionNo1;
func_array[1] = MyGeneratedFunctionNo2;
func_array[2] = MyGeneratedFunctionNo3;
...
自然,编译器会抱怨 MyGeneratedFunctionNo1、MyGeneratedFunctionNo2、MyGeneratedFunctionNo3 未定义。
有没有办法在这个生成的函数中使用函数指针?