• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:これはキャスト?が行われているのでしょうか?)

Linuxカーネルプログラムの疑問:externとポインタの使い方

このQ&Aのポイント
  • Linuxカーネルプログラムでのexternとポインタの使い方について疑問があります。
  • 特に、「extern void task_exit( void );」と「void (*TaskExit)(void)=&task_exit;」の意味がわかりません。
  • task_exitのアドレスをTaskExitに渡しているのでしょうか?変数TaskExitはどこに宣言されているのかも分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • zzzzzz
  • ベストアンサー率61% (70/113)
回答No.1

ただの関数ポインタの宣言&代入だと思いますが。 引数も戻り値もない関数へのポインタTaskExitを宣言して、 task_exitのアドレスを代入しています。

その他の回答 (2)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.3

> TaskExit という変数は、プログラム内のどこにも宣言されていません。 2行目自身が*TaskExitと言うポインターの宣言です。同時に初期値のセットも行なっています。

  • wr250zb
  • ベストアンサー率41% (7/17)
回答No.2

これは関数へのポインタを宣言してそこに関数のアドレスをセットしていますね。 なので2行目が宣言&代入(初期化)しています。 この後に TaskExit(); とやるとtask_exit()が実行されます。

関連するQ&A