次のステートメントの "(*)" 式の意味がわかりません。
#define PySpam_System \
(*(PySpam_System_RETURN (*)PySpam_System_PROTO) PySpam_API[PySpam_System_NUM])
どこ
#define PySpam_System_NUM 0
#define PySpam_System_RETURN int
#define PySpam_System_PROTO (const char *command)
( http://docs.python.org/2/extending/extending.htmlからの抜粋)。それはどういう意味ですか?(ばかげた質問ですみません)。関数ポインターに似ていますが、非常に紛らわしい構文です。
更新: Shahbaz と Jonathan のおかげで、物事はほぼ明確になってきましたが、まだ 2 つのニュアンスを得ることができません。
- なぜ
const char *command
、それだけではありませんconst char *
。関数ポインタの型宣言と型変換で引数の名前を省略したほうがいいと思った?では、省略してはいけません。省略してもよいのでしょうか。 (*(int (*)(const char *command))
だけでなく、なぜ(int (*)(const char *command)
ですか?外側の(*
[ここにある他のすべて]の目的は何)
ですか? 関数自体への関数ポインタのオプションの逆参照ですよね?