Home > programming > 関数のポインタのtypedef

関数のポインタのtypedef

たまにちょっとCのソースを読もうと思うと、よくわからんことばかりだなぁ。

typedef Datum (*PGFunction) (FunctionCallInfo fcinfo);

なんですかこれ。えーっと、

Datum (*func_pointer) (FunctionCallInfo fcinfo);

と書いてやると、Datum型を返す関数へのポインタであるfunc_pointerという変数を定義する(引数はFunctionCallInfo型のものを1つとる)ということだから、さっきのは、Datum型を返す関数へのポインタをPGFunctionという名前でtypedefしてるのか。

ということはここでのfcinfoは意味無いんだな。うーん、fcinfoがどこで定義されてるか知りたかったんだけど。ん?こっちは何だろう。

/* Standard parameter list for fmgr-compatible functions */
#define PG_FUNCTION_ARGS	FunctionCallInfo fcinfo

はぅ!!func(PG_FUNCTION_ARGS)はfunc(FunctionCallInfo fcinfo)という意味だったのか。どうりでタグジャンプで見つからないわけだ。

Writeback:0

Comment Form

writeback message: Ready to post a comment.

TrackBack ping me at
http://www.mono-space.net/blog/programming/040517typedef.trackback

Page Top