住所録のプログラムに以下の関数があります。
関数ポインタAddress *(func[])(Address)は引数にAddress *を取り、
Address *を返す関数ポインタですか。そのように理解しています。
search, add, amend, del, printallは 関数のジャンプテーブルに
どのように代入されているんでしょうか。コメントの関数のプロトタイプ宣言
のAddress *search(Address *);は引数にAddress *をとり、Address *を返す、
searchという関数を宣言していると思うのですが。わかるような、わからないような
きもちです。
どなたか、わかり易く説明していただけませんか。
不足するコードがあればおしゃってください。よろしくお願いいたします。
コード // 関数のプロトタイプ宣言 -- ジャンプテーブルに入れるため引数及び返却値型は // すべて同じとした Address *search(Address *); Address *add(Address *); Address *amend(Address *); Address *del(Address *); Address *printall(Address *); // 関数のジャンプテーブル Address *(*func[])(Address *) = {search, add, amend, del, printall}; //引数はAddress *である5個のsearch, add, amend, del, printallを取る //関数ポインタ(*func[])(Address *)を宣言する
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/12 09:28