0

typedefそのため、「クラス」構造体と「d」インスタンス構造体を使用して単純な小さなスタックを作成することにより、Cでオブジェクトの方向性をいじくり回してきました。クラス構造体は、インスタンス構造体へのポインターを操作する関数ポインターでいっぱいです。私が最初にそれについて行ったとき、私は自分自身に「インスタンス構造体を初期化するときにポインタをバインドするだけです!」と言いました。私の初期化関数は実際にはまだ値が割り当てられていないポインタであったため、これは機能しなかったと思われるかもしれません。

(現在、ほぼ午前5時です-就寝時間よりも起床時間に近いです)

したがって、実行時に関数ポインタを効果的にバインドして、それらをバインドする関数を明示的に呼び出す必要がないようにする方法があるかどうかを尋ねています-おそらく、のある種の対応物を考えていましたatexit

4

1 に答える 1

2

If the 'class' struct is always the same, you can initialise it statically:

void do_x_to_instance(instance *);
struct class_type {
    void (*do_x)(instance *);
    ...
} myclass = {
    &do_x_to_instance,
    ...
};

This is how the Python C API works to define extension types, for example.

于 2012-07-20T10:10:36.403 に答える