関数宣言を簡単に変更するためにマクロを使用したいのですが、今のところは次のとおりです。
#define MYDECLARATION(name) void name (void)
MYDECLARATION(my_thread); を呼び出すと、エラーが発生します:
識別子リスト パラメータは、関数定義でのみ使用できます。
私はそのように ## を使用しようとしました:
#define MYDECLARATION(name) void ##name (void)
しかし、コードで : が得られると確信voidmythread (void)
しています。それを行う方法について何か考えはありますか?
また、一般的なマクロに関するいくつかの優れたチュートリアルを知っているかどうかも興味があります.
ビットマスク コメントへの応答:
私はKEILコンパイラを使用しており、スレッドは次のように機能しています:
#define MYDECLARATION(name) __task void name(void)
私の電話:
MYDECLARATION(Mythread);
私の定義:
__task void Mythread(void)
{
//...
}
新しいテスト:
#define RET_TEST __task void
#define PARAMETER void
RET_TEST MYDECLARATION(PARAMETER);
これは機能しています...だから、機能していない関数名にマクロパラメータを使用するのは事実だと思います...