圖:https://ideone.com/e.js/37Gfzz
此圖是用typecast把指向void的pointer轉型成指向一個function的pointer
在第16行: ( ( void(*)(void) )e.fn )();
我一直搞不太懂這裡operator的優先順序
()優先權最高,結合性是由左至右。如果是nested,最裡面的先執行
1.執行(*)的括號
2.執行(void)的括號
3.執行( void(*)(void) )的括號
4.執行( (void(*)(void) )e.fn )的括號
5.執行最右邊的()括號
情況: 少了第四行的括號,compile出現error。
解析: 也就是說加了第四行的括號,compiler才認為這整個東西是一個指向void(*)(void)
的pointer
問題: 為什麼一定要加第四個括號?
謝謝~