質問
私は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 *);
所属していません StackOverflow