重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Cygwin+vim+ctagで
タグジャンプでFT_Memoryを調べていたら、
\cygwin\usr\include\freetype2\freetype\ftsystem.h内に

typedef struct FT_MemoryRec_* FT_Memory;



struct FT_MemoryRec_
{
void* user;
FT_Alloc_Func alloc;
FT_Free_Func free;
FT_Realloc_Func realloc;
};



typedef void* (*FT_Alloc_Func)( FT_Memory memory,long size );


いう風にループタグジャンプしていまい、ずーっと盥回し状態です。

FT_Memoryというオブジェクトは具体的にどのように定義されているのでしょうか?

A 回答 (1件)

typedef struct FT_MemoryRec_* FT_Memory;


  ↓
FT_MemoryはFT_MemoryRec_型のオブジェクトを指すポインタ


typedef void* (*FT_Alloc_Func)( FT_Memory memory,long size );
  ↓
FT_Alloc_FuncはFT_Memoryとlongを引数に持ち、void*を返す関数のポインタ
  ↓
C言語の文法でメンバー関数を定義したいのでしょう

この回答への補足

有難うございます。

> typedef struct FT_MemoryRec_* FT_Memory;
>   ↓
> FT_MemoryはFT_MemoryRec_型のオブジェクトを指すポインタ
つまり、FT_Memoryにはアドレス(数値)が格納される型なのでlong型という事なのですね。

> typedef void* (*FT_Alloc_Func)( FT_Memory memory,long size );
> FT_Alloc_FuncはFT_Memoryとlongを引数に持ち、void*を返す関数のポインタ
> C言語の文法でメンバー関数を定義したいのでしょう
FT_Alloc_Funcはlong(FT_Memory)型とlong型を引数に持ち、void*を返す関数のポインタ
と言ってもいいんですかね。

これなら堂堂巡りせずに済み、納得出来ます。

補足日時:2005/03/14 18:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!