次のようなマクロを介して関数を生成するコードを使用しようとしています。
ファイル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が定義されていないと文句を言います。
この生成された関数で関数ポインターを使用する方法はありますか?