警告について:互換性のないポインタ型から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)