「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ で名前を文字列として使用して変数の値にアクセスするにはどうすればよいですか?

C++ で名前を文字列として使用して変数の値にアクセスするにはどうすればよいですか?

2024 年 11 月 27 日に公開
ブラウズ:712

How Can You Access a Variable\'s Value Using its Name as a String in C  ?

C で変数名を表す文字列から変数値にアクセスする

C では、その変数を使用して動的に変数の値を取得することができます。文字列として名前を付けます。一般にリフレクションとして知られるこの手法により、柔軟なデバッグおよびイントロスペクション機能が可能になります。

これを実現するには、次の手順を利用できます:

  1. 変数の取得アドレス:

    • 変数のアドレスを取得するには、「&」演算子を使用します。たとえば、&counter は、カウンターが保存されているメモリの場所を返します。
  2. ポインターへのキャスト:

    変数のキャスト変数の型のポインタへのアドレス。これにより、変数の値に間接的にアクセスできるようになります。例: int* counterPtr = static_cast(&counter);
  3. ポインター経由の値へのアクセス:

    ポインターを通じて変数の値にアクセスするには、逆参照演算子 (*) を使用します。例: std::cout
  4. Function Wrapper:

      プロセスをより便利にするために、変数名を表す文字列を受け取り、変数の値を返す関数を作成できます。この関数は、上記の手順を簡素化します:
    • template T valueOf(const std::string& varName) { T* varPtr = static_cast(std::addressof(varName)); *varPtr を返します; }
      template 
      T valueOf(const std::string& varName) {
        T* varPtr = static_cast(std::addressof(varName));
        return *varPtr;
      }
使用法:

valueOf 関数を使用すると、変数の値を動的に取得できます:

std::cout ("counter")
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3