ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C언어] 함수퍼인터를 사용해서 자기스스로 환경을 비교
    Programming/C 언어 2008. 10. 30. 10:19
    #include <iostream>
    using namespace std;


    // ForWindows9x() 나 ForWindowsNT()를 가르킬수있는 포인터타입 정의
    typedef void (*SYSTEM_FUNC)();



    void ForWindows9x();
    void ForWindowsNT();
    bool IsWindows9x();
    void ImportantFunc(SYSTEM_FUNC pfnSyst);




    int main()
    {
      // 함수포인터 변수
      SYSTEM_FUNC pfn;

      // 시스템 버전에 따라서 알맞은 함수를 가리키게 만든다
      if(IsWindows9x())
      {
        pfn = &ForWindows9x;
      }
      else
      {
        pfn = &ForWindowsNT;
      }
      
      // 중요한 함수호출 함수주소를 넘겨준다
      ImportantFunc(pfn);


      return 0;
    }



    void ForWindows9x()
    {
      cout << "Windows 9x용 함수가 호출됨\n";

    }
    void ForWindowsNT()
    {
      cout << "Windows NT/2000/XP 용 함수가 호출됨\n";

    }
    bool IsWindows9x()
    {
      return false;

    }

    // 중요한함수 호출해야할 함수의 포인터를 인자로 받는다
    void ImportantFunc(SYSTEM_FUNC pfnSyst)
    {

      (*pfnSyst) ();

    }

    댓글 0

Designed by Tistory.