河野真治 @ 琉球大学情報工学です。

> >     int (*(*ptr1)())();

から、ptr1 を消せば、int (*(*)())(); となるわけなので、間違
えようがないわけなんですが... そういう仕組みだと気付くまでは、
さっぱりこんでした。「*より()の方が結合が強いので()がいる」
とか言われるわけだけど。

In article <bqfftt$f3n$1@news511.nifty.com>, <kounoike@mbh.nifty.com> writes
> ですね。ところで,(int (*)())(*)()って表記は意味的には通じそうですが,文法的
> にはエラーですよね。(また,間違ったことを言っているかも知れませんが。)

どこに識別子をおけるかってことなんですけどね...
    % gcc -c tmptmp.c
    tmptmp.c:1: error: parse error before "int"
とかいうなぁ。before なのかよ。

    int j;
    int (*(*k)())();
    k = (int (*(*)())()) j;

は、通るんだけど、

    int (*(*)())() j;

は通らないですね。良く分からん。キャストと型名は違うものみたい。

---
Shinji KONO @ Information Engineering, University of the Ryukyus, 
河野真治 @ 琉球大学工学部情報工学科,