>>85
Cだと、関数にインスタンスを渡すにはthisポインタ(構造体
自身のポインタ)わたさんとイカンから。

struct Hoge{
int val1;
/*メンバ変数いろいろ*/
void(*func1)(Hoge*);
/*メンバ関数いろいろ*/
}

static void HogeFunc1(Hoge*){/* なんか実装 */}
static void HogeFunc2(Hoge*){/* なんか実装 */}

static Hoge* Hoge_Constractor(){
 Hoge* ptr = (Hoge*)malloc(sizeof(Hoge));
 ptr->func1 = HogeFunc1;
 ptr->func2 = HogeFunc2;
 /*その他初期化をいろいろ*/
 return ptr;
}

//Usage
Hoge* this = Hoge_Constractor();
this->func1(this);

要するに、言語仕様でサポートしていない事をやるための無駄な作業。