Re: typedef と関数ポインタ
河野真治 @ 琉球大学情報工学です。
> > 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,
河野真治 @ 琉球大学工学部情報工学科,
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735