1

メソッドを使用しています

#define CM_VALUE_1                       CM_Method(3001)

CM_Method は、同じファイルで定義されたメソッドです。

vc++でCM_Method(3001)使用して印刷したいだけですCM_VALUE_1

4

1 に答える 1

5

stringize プリプロセッサ演算子を間接的に使用して、必要なものを取得します。

#define MAKE_STR(X) #X
#define MAKE_STR2(X) MAKE_STR(X)

std::cout << MAKE_STR(CM_VALUE_1)
          << " is " << MAKE_STR2(CM_VALUE_1)
          << std::endl;

結果として

CM_VALUE_1 is CM_METHOD(3001)

パラメータ toMAKE_STR2自体がマクロである場合は、 を呼び出すときに展開MAKE_STRされるため、マクロ名そのものではなく、パラメータが定義された内容の文字列化が結果として得られます。

于 2012-06-13T06:42:26.030 に答える