void (*funcPtr)()
最好的處理辦法是:從中間開始和向外擴展。“從中間開始”的意思是從變量名開始,這裏指的是funcPtr。“向外擴展”的意思是先注意右邊最近的項(在這個例子中沒有該項,以右括號結束),然後注意左邊(用星號表示指針),注意右邊(空參數表表示這個函數沒有帶任何參數),再注意左邊(void便是函數沒有返回值)。大多數聲明都是以右-左-右的方式工作。
所以上式的含義就是:funcPtr是一個指針,它指向一個不帶參數返回值爲void的函數。
如果去掉括號,上面的代碼就變成:
void *funcPtr ()
用上述方法可以看出:funcPtr是一個函數,他的參數表爲空,返回值爲void*
更多的包含函數指針的複雜定義可以參考網上或《C++編程思想》第三章相關內容,一般太複雜的定義我們基本也不會用到,只要明白處理這種複雜定義的原理,遇到不會困惑就行。