C言語を勉強しているのですが、ネットを検索していたらわからない構文を見つけました。
if (gpa != NULL) return ((void*(*)(const GLubyte*))gpa)(name);
の((void*()(const GLubyte))gpa)(name)の実体がわかりません。
まず識別子についてそれぞれ
typedef unsigned char GLubyte; GLubyte* name; static void* gpa;
と定義されており、しかし結局これが何を意味するのかが分かりません。
色々考えてみたのですが、「voidを返す関数(引数はconst GLubyte)へのポインター(識別子は無名)」にgpaをキャストして、そのgpaに引数としてnameを与えたgpa(name)という関数の形になったのかな?と思ったのですが、だとしたら(*gpa)(name)になるんじゃないのか?と思ったのですが・・・結局わかりませんでした。どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/04 03:17