ランダム変数名、それは可能ですか?

何らかの理由で複数の変数を作成し、配列を使用せずし、別の名前を持つ必要がある場合を考えてみましょう。論理的には、空の変数を作成せず、必要に応じて500を設定します。

つまり、配列やベクトルをランダムに使用することなく、同じ名前の変数を生成することは可能ですか?

可能であれば、インスタンス化ロジックまたはCまたはC ++が必要です。

私はこのメソッド(C)で試してみましたが動作しません:

#include //for random

#define RANDOM random(100)

int main ( void )
{
    int n/**/RANDOM = 5;
    return 0;
}

おそらく古いコンパイラは、コメントを削除するので動作します。現在のコンパイラはコメントをスペースとみなします。

ベストアンサー

少なくとも最近のGCCでは、

 #define NEWVAR_NUM(Var,Num) { static int Var_##Num; foo(&Var_##Num); }
 #define NEWVAR(Var) NEWVAR_NUM(Var,__COUNTER__)

On other (or with standard conforming) compilers, you can use
__LINE__ instead of __COUNTER__. See
Common Predefined Macros of GCC and cpp’s
concatenation

また、そのような考案されたCコードを生成することも考えられます。 m4
または独自のジェネレーター(10行のスクリプトまたは100Kラインジェネレーター)を使用することができます。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です