問題タブ [function-pointers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C の関数ポインターの typedef を理解する
引数を持つ関数へのポインターの typedef を持っている他の人々のコードを読んだとき、私はいつも少し困惑していました。少し前に C で書かれた数値アルゴリズムを理解しようとしていたときに、そのような定義にたどり着くのに時間がかかったのを思い出します。では、関数へのポインター用の適切な typedef を作成する方法 (すべきこととすべきでないこと) に関するヒントと考えを共有していただけますか? それらが役立つ理由と、他の人の作業を理解する方法について教えてください。ありがとう!
c - 可変引数を持つ関数に関数ポインタを渡す方法は?
これを達成する方法がわかりません!
va_list引数で関数ポインタを取得する方法は?
本当にありがとう。
.net - ParameterInfoオブジェクトが管理されたパラメータータイプを含む関数ポインターを参照していると推測することは可能ですか?
リフレクションを使用して次のメソッド宣言を調べていますが、メソッドの唯一のパラメーターが関数ポインターであると判断できるかどうか疑問に思っています。
ParameterInfo
オブジェクトのパラメータを検査するfoo
と、パラメータのタイプがIntPtr
;であることが示されます。関数ポインタはネイティブCLR型ではないため、これは理にかなっています。
関数ポインターには管理対象パラメータータイプのみが含まれているため、で追加のコンテキストを取得したいと考えていましたParameterInfo
。ParameterInfo
にプロパティや属性が表示されないので、このインスタンスを関数ポインタとしてType
区別するのに役立つ可能性があります-何かありますか?IntPtr
c - なぜCで警告し、C ++でコンパイルできないのですか?
なぜこのコードなのか
Cでは、コンパイル時にそのような警告を表示します。
'警告:互換性のないポインタ型からの割り当て'
C ++では、コンパイルできません。
c - 任意の構造体ポインタの配列をC関数に渡しますか?
任意の構造体ポインターの配列と比較関数を一般的な並べ替えアルゴリズムに渡したい。これはCで可能ですか?
構造体のグーイは比較関数内でのみアクセスされ、ソート関数は比較関数を呼び出してポインターを交換するだけで済みますが、それを宣言する方法がわかりません。
c - 関数宣言からの関数ポインタのC構文はありますか
関数の関数ポインターtypedefを宣言する代わりに、関数宣言から取得することは可能ですか?
通常、
私が欲しいもの:
dlsymに使用したい:
fooを更新してfooFuncを更新するのを忘れた場合、またはその逆の場合、それは悪いことです。また、私は多くの関数を持っている可能性があり、それらの関数に関連付けられている関数宣言と関数ポインターtypedefの両方を維持するのはより多くの作業になります。
結論:AndreyTの答えは最も移植性がありますが、gccをコーディングする場合は、typeofが優れたソリューションです。
c++ - c++: &rand は正確に何をしますか?
これはいくつかの C++ コードの抜粋です。これについては、後日詳しく説明する必要があります。
小さな神秘的な &rand を除いて、私はそれについてすべてを理解していると思います。それは正確に何をしますか?つまり、ある種の疑似乱数を生成することは明らかですが、それらは常に同じままです。&rand はどこから来たのですか? どんな表現ですか?それが生み出す価値はどこから来るのか?私は少し混乱しています…</p>
また、コード内に「rand」という単語が他に出現することも、乱数と関係がある可能性のあるコードも見当たりませんでした。C++ での私の (非常に限られた) 経験から、事前に宣言またはインクルードしなくても単純に機能するものはごくわずかであることがわかったため、不思議に思いました。
助けてくれてありがとう!
java - 関数を繰り返す
Javaでこのようなことは可能ですか?
私はほんの一握りの関数を呼び出していますが、次のように構成する必要があります。
そして、何百行もの関数呼び出しを書き出すことは避けたいと思います。
関数ポインターとファンクターを調べてみましたが、適切なものは見つかりませんでした。
c++ - 同じクラスのプライベート メンバーへのポインターを受け取るプライベート メンバー関数
これどうやってするの?(次のコードは機能しませんが、アイデアが説明されていることを願っています。)
次のような方法で Caller を呼び出したい:
渡す必要があると思われるパラメーターを指定してCaller
呼び出します。ToBeCalled
可能であれば、クラスのプライベート部分にすべてをカプセル化しておきたいと思います。実際には、 のような関数が約 50 個あるToBeCalled
ため、これを回避する方法がわかりません。
提案をありがとう。:)