6

まず、MS の Visual Studio と C 言語を使用しています。

最近、マクロが好きな同じステートメントを 1 つだけ使用して変数を宣言する必要があります。

ただし、ご存知のように、同じ名前の変数を 1 つだけ宣言できます。

たとえば、これは不可能です。

int iVar1;
int iVar1; // this is not possible. 

そこで、マクロに__ LINE __を含めることを考えました。この事前定義されたマクロを使用できれば、1 つのマクロ ステートメントで多くの変数を宣言できます。

でも作るのが大変でした。

こんな感じでマクロを作りました。

#define MY_LINE_VARIABLE        int g_iLine##__LINE__##Var = 0;

しかし、コンパイル後、「g_iLine123Var」ではなく「g_iLine_ LINE _Var」という名前のこの変数を取得できました

それが可能であることを知りたいのですが、どうすればそれを作ることができますか。

さらに、可能であれば__ FILE __マクロを使用する必要があります。ただし、このマクロは文字列データで変更される場合があります。だから確信が持てない。

どんなアドバイスも役に立ちます。

よろしくお願いいたします。

4

2 に答える 2

6

@Chris Lutzが正しく言ったように、あなたが望むものを達成するためのより良い方法があるかもしれません. あなたが達成したいことを尋ねることを検討してください。

しかし、興味がある場合は、次の方法があります。

#define var(z) int g_iLine##z##var = 0
#define decl(x) var(x)
#define MY_LINE_VARIABLE        decl(__LINE__)
MY_LINE_VARIABLE;
MY_LINE_VARIABLE;
于 2011-08-05T02:36:35.110 に答える