>  기사  >  백엔드 개발  >  C에서 이름을 문자열로 사용하여 변수의 값에 어떻게 액세스할 수 있습니까?

C에서 이름을 문자열로 사용하여 변수의 값에 어떻게 액세스할 수 있습니까?

DDD
DDD원래의
2024-10-25 01:39:301003검색

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 << *counterPtr << 표준::endl; counter 값을 인쇄합니다.
  4. Function Wrapper:

    • 프로세스를 더욱 편리하게 하려면, 변수 이름을 나타내는 문자열을 가져와 변수 값을 반환하는 함수를 만들 수 있습니다. 이 함수는 위에서 설명한 단계를 단순화합니다.

      <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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.