我試圖定義函數指針創建一個微距功能,功能等函數和函數指針聲明的宏?
這裏就是我想要做的事:
#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