我试图定义函数指针创建一个微距功能,功能等函数和函数指针声明的宏?
这里就是我想要做的事:
#define PRO_SIGNAL_MAX 5
#define PRO_SIGNAL(func, param) (*func [ PRO_SIGNAL_MAX ])(param)
我想用这个声明的功能的阵列尺寸为PRO_SIGNAL_MAX
的指针。
所以,当我这个在这里使用:
void PRO_SIGNAL(paint, (Pro_Window*));
我希望它产生:
void (*paint [ 5 ])(Pro_Window*) ;
但我的计划是不是很努力,我得到这个错误:
pro_window.c|16|error: expected declaration specifiers or '...' before '(' token|
究竟是什么问题?
您使用它的方式,宏会生成一对双括号,如((Pro_window *))。 – wildplasser 2012-02-01 11:57:24
我强烈建议你改用typedefs。这个宏并没有明显的目的,只是让读者感到困惑。 – Lundin 2012-02-01 12:37:23