質問

私はC関数を取る関数ポインタを引数として与えた場合、そので、デストラクタで、ちょっと電話で私からのプログラム。こちらは試作品の機能:

int store_dest(void (*routine)(void *));

い店舗はこの関数ポインタへの構造とおりです!るためには、struct、したいと思っていますtypedefにこの関数ポインタです。ここでは私のtypedef:

typedef void (*my_destructor)(void *);

この構造:

typedef struct my_struct{
  my_destructor dest;
  other_info ...
} my_struct;

初期化の際に、たい設定"destプロフィール機能の鉱山の試作本機能:

void* my_dummy_dest(void* foo);

の問題(遅らせることで警告を発してしまいましたが、まず私を抑制すること)が起ころうとした際に、設定は"dest"分野の構造"my_dummy_dest":

my_struct.dest = &my_dummy_dest;

を取得しま"警告:課題からのポインタ型"

がんと比較してみてください:

if (my_struct.dest == &my_dummy_dest)

を取得しま"警告:比較のポインタ型においてキャスト"

がでませんので警報時代には"dest"の分野でも日常的に見られる。ったり下がったりよくわからないため、私はその下方修正を発表している。

役に立ちましたか?

解決

おにダミーデストラクタの宣言された戻り、ボイド ポインタ, ではなく、無効となります。この宣言と一致しないのtypedef用デストラクタ関数ポインタです。

他のヒント

のtypedefき

typedef void *(*my_destructor)(void *);

でmy_dummy_testを返しますvoid* の代わりに無効となります。ばいvoid*のtypedefき

typedef void* (*my_destructor)(void *);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top