警告について:互換性のないポインタ型からxxxの引数xを渡す



About Warning Passing Argument X Xxx From Incompatible Pointer Type



このタイプの警告の理由は :xxx関数のxパラメーターがポインター型パラメーターとして使用されており、ポインター型に互換性がありません。
解決 :呼び出し元の関数のパラメーターの前に必須の型変換を追加します。


ソースコード:



void * signal_exit(void) { printf('Stop sniffer ') exit(0) } int main(void) { signal(SIGINT, signal_exit) return 0 }

エラー:
画像
理由分析:
void(* signal(int sig,void(* func)(int)))(int)
シグナル関数の2番目のパラメーターに対応するタイプは、(void *)タイプ関数名にすることができ、パラメーターポインタータイプに互換性がないことを警告します

解決策:追加(void *)
signal(SIGINT, (void *)signal_exit)