関数の引数に関するいくつかの統計情報を収集するために、プログラムで関数が呼び出されるたびに呼び出されるフック関数を書きたいと思います。たとえば:Cで関数の汎用フックを書くには?
void hook(function f, ...){
//some statistics here
f(...);
}
int main(){
foo(1, 2);
}
ので、代わりの直接foo
を呼び出し、それは、最初の引数としてfoo
や余分な引数として1, 2
で代わりにフックを呼び出します。
Cにはこれに類似するものはありますか?他の方法でCでこの目標を達成することはできますか?
cでは、関数のポインタに省略記号を付ける必要があります。 –
@πάνταῥεI私が書いたコードは、実際のコードよりも擬似コードのほうが多いです。私はこれがC言語で可能かどうかを知りたがっています。 – afsafzal
GCCを使うと、 '-finstrument-functions'フラグを使ってコードを計測することができます。ただし、生成される関数は関数の引数リストを受け取らない。別のオプションは、プリプロセッサマクロを使用していますが、foo関数にコードを明示的に追加する必要があります。 –