- 2004-10-24
- programming
たまにちょっと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)という意味だったのか。どうりでタグジャンプで見つからないわけだ。