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) ();

}
Posted by 시긔양

댓글을 달아 주세요

Programming/C 언어2008. 10. 30. 09:53
int Test()
{
cout << "함수내부~~☆☆★★\n" ;
return 0;
}

int main()
{
int iPoint = (int)Test;
((int(*)()) ((int *)iPoint))() ;


return 0;
}


변태짓.. ㅎㅎ 

설명은 다음에 !

심도깊은 포인터공부~
Posted by 시긔양

댓글을 달아 주세요