5

Cでは、可変長マクロで各可変引数を連結することは可能ですか?

例:

MY_MACRO(A, B, C) // will yield HDR_A, HDR_B, HDR_C
MY_MACRO(X, Y)    // will yield HDR_X, HDR_Y

通常の##演算子は、可変個引数マクロに対して特別な意味を持ちます (空の引数リストのコンマを避けます)。with を使用した場合の連結__VA_ARGS__は、最初のトークンのみで行われます。

例:

#define MY_MACRO(...) HDR_ ## __VA_ARGS__

MY_MACRO(X, Y)    // yields HDR_X, Y

提案?

4

1 に答える 1