以下のコードはvtableを実装するためのコードです。私はA
が関数ポインタのC構文の理解
typedef struct A{
int a;
A_functable *vmt;
} A;
方法であるA_functable
のメンバーであるvoid (*A)(struct A*);
で関数ポインタとして(*A)
に言及理解できませんでした
struct A;
typedef struct {
void (*A)(struct A*);
void (*update)(struct A*);
int (*access)(struct A*);
} A_functable;
typedef struct A{
int a;
A_functable *vmt;
} A;
次のコードで
、この構文を理解するには?void (*A)(struct A*);
で
他の2つの関数ポインタを読み込むのと同じように、ちょうど 'A'という名前です。 – user2357112
'A_functable'の' A'は、後で紹介するタイプ名 'A'とは完全に別です。混乱を避けるために、著者は別の名前を使用していたはずです –
おそらくテスト/宿題の質問... – Rafael