0

次の行を持つコードを理解しようとしています:

void terminate_pipe(int);
code code code...
struct sigaction new_Sigiterm;
new_Sigiterm.sa_handler = terminate_pipe;

私の質問は次のとおりです。

  • このような関数を呼び出す意味は何ですか? NULLパラメータとして入れるだけですか?

  • 無効なのでどうしよnew_Sigiterm.sa_handlerうもNULLない?

ありがとう。

4

3 に答える 3

1

この割り当てのようなコードは、ハンドラー (関数ポインターと呼ばれることもあります) を設定しています: 基本的に、特定の時間に実行する関数のアドレスです。

()C での this の構文は、関数に名前を付けることですが、最後に付けないでください。関数のアドレスを返します。

new_Sigiterm.sa_handler = terminate_pipe;
于 2015-12-04T21:33:16.750 に答える
0
  1. void terminate_pipe(int);関数の呼び出しではなく、関数の前方宣言です。
  2. Innew_Sigiterm.sa_handler sa_handlerFunction Pointerです。
于 2015-12-04T21:34:14.420 に答える