0
実際に既存の関数を接頭辞付きで他の関数にラップするマクロを使用して関数を定義しようとしています。 のは、例えばましょう:Cマクロを使用した関数の折り返し(名前の変更)
int a_f1(int a, void *b, char c);
int a_f1(int a, void *b, char c) { return f1(a,b,c); }
私はそれがF1、F2、F3やF4のいずれかで動作することができるようにそれをやろうとしている:
int f1(int a, void *b, char c) { return 1; }
int f2(void *a) { return 1; }
void f3(void *a, int b) {}
void f4() {}
#define WRAP(prefix, f) // do something
WRAP(a, f1) or WRAP(a,f1,int,void*,char) or WRAP(a,f1,int,a,void*,b,char,c)
これは、のようなものを作る必要があります。 誰かがそれを行う方法について考えているなら、私は本当に感謝します。あなたがラップ機能の戻り値の型とパラメータを指定するために気にすることができれば
「新しいヘッダーを生成する」とはどういう意味ですか?プリプロセッサの出力をリダイレクトしてヘッダファイルを作成しようとしていますか? –
私は、すべてのシンボルがプレフィックスされている場所を含めることができる新しいヘッダーを作成したいと考えています。私の質問のコンテキスト部分は混乱していて、不十分で不必要なので、削除しました。 – yayg