たとえば、次の (抽象) 宣言を見てください。
int (*) (*)
// int を返し、引数を取らない関数へのポインタ
(次のサイトから取得しました: http://www.vineetgupta.com/blog/deciphering-complex-c-declarations )
void だけが引数なしを意味すると思いました。これは本当に と同じことを意味しますか :
int (*) (void)
もしそうなら、引数を指定しないために * を使用できるとどこに記載されていますか?
また、このような抽象宣言は型キャストに対してのみ存在すると仮定して正しいでしょうか? もしそうなら、それは現在の形式では無効であるに違いありません。だからint(*)(void)
無効ですが(int(*)(void))
、有効ですよね?