C で変数名を表す文字列から変数値にアクセスする
C では、その変数を使用して動的に変数の値を取得することができます。文字列として名前を付けます。一般にリフレクションとして知られるこの手法により、柔軟なデバッグおよびイントロスペクション機能が可能になります。
これを実現するには、次の手順を利用できます。
変数の取得アドレス:
ポインターへのキャスト:
ポインター経由の値へのアクセス:
関数ラッパー:
プロセスをより便利にするために、変数名を表す文字列を受け取り、変数の値を返す関数を作成できます。この関数は、上記の手順を簡素化します。
<code class="cpp">template <typename T> T valueOf(const std::string& varName) { T* varPtr = static_cast<T*>(std::addressof(varName)); return *varPtr; }</li></ul> </li> </ol> <p><strong>使用法:</strong></p> <p>valueOf 関数を使用すると、次のことができます。変数値を動的に取得:</p> <pre class="brush:php;toolbar:false"><code class="cpp">std::cout << valueOf<int>("counter") << std::endl;</code>
以上がC で名前を文字列として使用して変数の値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。