1

サプライヤのツールから生成された関数がたくさんあり、自分で定義する必要があります。これらの機能のすべての内部機能はまったく同じであるため、マクロを使用して自分の生活を楽にすることができると思いました。

問題のある警告は次のとおりです。

pasting "<function_name>" and "(" does not give a valid preprocessing token

ここで、マクロを次のように定義します。

#define HANDLE_FUNCTION(x)               \
  void <function_prefix>_ ## x ## (void) \
  {                                      \
    x ## _Flag = TRUE;                   \
  }

私のコードでは、次のように記述します。

HANDLE_FUNCTION(fn1)
HANDLE_FUNCTION(fn2)

...等々

なぜこれが起こるのかについて何か考えはありますか?

4

1 に答える 1

5

2番目を削除し##ます。使用できません(のシンボルを1つ作成する必要はありませんfunction_name()。

于 2010-03-03T13:21:41.913 に答える