• ベストアンサー

コールバックって・・・

hashioogiの回答

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.3

C言語の標準関数の一つとして配列をソートする関数qsortがありますが、qsortの呼び出し形式は void qsort(void *base, size_t nmemb, size_t size,int (*compar)(const void *, const void *)); です。 アプリケーションは予め int comp(const void *, const void *); の形の、2つの配列の要素を比較する関数を用意して*comparの所にcompを指定してqsort関数を使用します。アプリケーションの作成者はqsortのロジックを変更することなく、自作のcomp関数の中身を変えることでソートの順番を変えることができます。 この場合compはコールバック関数ですがマルチタスクともイベントドリブンとも割り込みとも関係がありません。

関連するQ&A

  • コールバック関数について

    コールバック関数の意味は、 特定の条件が成り立った時に呼び出してもらうだと思うんですが、 コールバック関数を使うメリット・利点は何なんでしょうか?

  • コールバックって何?

    はじめまして、_IXTLと申します。 仕事場でコールバック関数という言葉を聞きました。 呼び出し先にあらかじめ呼び出す関数を覚えさせておく 手法(うろおぼえ)とか…何とか…。 (確か、複数の関数ポインタのテーブルを持たせていたような気がします) Wikipediaなどでも調べましたが、意味が分かりません。 この意味や、メリットなどを詳しく教えて頂けないでしょうか? お願いします。

  • 【php】コールバック関数ってなんですか?

    【php】コールバック関数ってなんですか? コールバック関数ってどういうものなのでしょうか? 個人的になイメージでは このライブラリの、このボタンを押した時 hoge()という関数が実行されるように設計しておいたから ボタンを押した時に何か動作が必要な場合は hoge()という名前で関数を定義しておいてね。 みたいな感じでしょうか?

    • ベストアンサー
    • PHP
  • イベントドリブン(C言語)

    イベントドリブン(C言語) こんにちわ、質問があります。 とあるイベントドリブン型のプログラムについて説明をされました。 ソフトはOS(元はハード)からManagerと言われる管理タスクにイベントが 飛んでいき、Managerから各タスクの関数がコールされる仕組みだそうでです。 また、それだけでなくOSから各タスクのコールバック(?)関数がコールされる事も あるそうです。 ◆質問 ここでいうイベントとは何なんでしょうか? 結局C言語なので、イベントと呼ばれているモノは関数コールなんでしょうか? C言語でイベントドリブン型プログラムを作成した事がある方、 自分ならこう作るぞという方、教えてください。

  • コールバック関数と、再帰関数の違いってなんですか?

    コールバック関数と、再帰関数の違いってなんですか?

  • コールバック関数

    お世話になります。VB.NETにてソフト制作をしています。 今回、DLLの関数を利用する事になりましたが、うまく宣言できず困っています。御教授お願いします。 DLLはC++で作られており変更できません。 DLLは通信を補助するための物で、初期設定の関数と通信開始の物があります。 初期設定用を呼んだ後、通信開始を行なうようです。 説明には下記のような内容がありました。 【初期設定用】  initial(DWORD ip, LPNOTIFICATIONFUNC notificationFunc); ip=相手先のipアドレス  notificationFunc=コールバック関数へのポインタ コールバック関数    WINAPI *PNOTIFICATIONFUNC( DWORD id, BYTE bySet1, BYTE bySet2, BYTE bySet3, BYTE *data, DWORD datasize ); 【通信開始用】  start(DWORD ip BYTE *code ); ip=通信元のipアドレス code=相手のコードの格納アドレス 以上 全体的にどう宣言したら良いのか解りません。 (特にコールバック関数の宣言と、ポインタへの引数の渡し方) すみませんが、御教授お願いします。

  • jQueryのコールバック関数の実行順序について

    いつもお世話になっております。 jQueryのコールバック関数について質問させて下さい。 jQueryの関数には引数としてコールバック関数を取るものがありますが、これらの実行順序で悩んでいます。 実行順序に関して、呼び出し元関数の実行が完了した後にコールバック関数が実行されるという認識で間違いないでしょうか? 以前、実行順序は保証されないという記述を見たのですが、どこで見たのか失念してしまい、再度読み直す事ができないでいます。 以上の事に関してご教授下さい。 宜しくお願い致します。

    • ベストアンサー
    • AJAX
  • コールバックでイベントを使うメリットは何でしょうか

    コールバック関数を実行するのに、わざわざイベントを使う利点は何でしょうか。 下記のコードでは、どちらでも大して変わらないように見えますが・・・ Module modMain Sub Main() Dim myRaise As clsMyRaiseEvent = New clsMyRaiseEvent 'イベントを使った使用法 AddHandler myRaise.MyEvent, New clsMyRaiseEvent.dlgMyEvent(AddressOf MyCallBack) myRaise.Test1() '関数ポインタ的な使用法 myRaise.callback = New clsMyRaiseEvent.dlgMyEvent(AddressOf MyCallBack) myRaise.Test2() Console.ReadLine() End Sub 'コールバック関数 Private Sub MyCallBack(ByVal aEx As Exception) Console.WriteLine("Called") End Sub End Module Public Class clsMyRaiseEvent Public Delegate Sub dlgMyEvent(ByVal aEx As Exception) Public Event MyEvent As dlgMyEvent 'デリゲート型のイベント Public callback As dlgMyEvent Public Sub Test1() RaiseEvent MyEvent(New Exception) End Sub Public Sub Test2() callback(New Exception) End Sub End Class

  • コールバック関数 再び

    またまた、お世話になります。前回、御回答頂き動作するようにはなったのですが、コールバックに入力があった時に、アプリケーションが終了してしまう現象がおきています。御教授お願いします。 C++で作られたDLLを利用。 装置との通信を行なう物で初期設定用と通信開始用の 関数があり、コールバック関数で、装置からの送信もある。このDLLを使った、他のアプリで動作確認は取れているのでDLL自体には問題ないと思われる。 関数説明 【初期設定用】  initial(DWORD ip,LPNOTIFICATIONFUNC notificationFunc); ip=相手先のipアドレス notificationFunc=コールバック関数へのポインタ コールバック関数 WINAPI *PNOTIFICATIONFUNC(  DWORD id,  BYTE bySet1,  BYTE bySet2,  BYTE *data,  DWORD datasize); 以上の説明があり、現在下記のように宣言して使っています。 【初期設定用】 Declare Function MT_INITIALIZE Lib "TEST.dll" Alias "Initial" _  (ByVal ip As Integer, ByVal notificationFunc As CallBack) As Boolean Public Delegate Sub CallBack( _  ByVal id As Integer, _ ByVal byset1 As Byte, _ ByVal byset2 As Byte, _ ByVal data As IntPtr, _ ByVal dataSize As Integer) 【コールバック関数】 Public Shared Sub notificationFunc( _  ByVal id As Integer, _ ByVal byset1 As Byte, _ ByVal byset2 As Byte, _ ByVal data As IntPtr, _ ByVal dataSize As Integer )   //データのバッファ処理 End Sub

  • matlabでのエラー コールバック??

    matlabのエラーについてお聞きしたいのですが・・・ あるシミュレーションを実行しましたら以下のようなエラーが出ました。 MPC block (mask) 'MPC Controller'の'InitFcn'コールバックの実行中にエラーが発生しました。 エラー ==> @mpc\private\mpc_estimator の 52 行目 Problems encountered when designing the overall state observer (Kalman filter). 上の文では「コールバックの実行中」というのが意味がわかりません。コールバックとぐぐってみても電話回線の話などが出てきて、肝心な制御の話はほとんどありませんでした。 下の英語の文は訳せはするんですが、何を言っているのかは意味不明です・・・。 この二文はいったいどういったときに出るエラーなのか。あとmatlabでいうコールバックとはいったいどういったことなのか。もしご存知ある方がいましたら、是非ご指導願います。よろしくお願いします。