본문 바로가기

C언어/강의

2010년 11월 11일 목요일 ( 함수포인터 (printf문의 고정관념 박살내기))

int (*)(const char *, ...); // printf문의 type형
int main()
{
   int (*p)(const char *, ...);
   p=printf;    // printf 대신 scanf를 대입하면 p를 scanf로 사용가능

   p("hi\n");
   return 0;
}
((int(*)(const char *,...))0x8048300) // 완전한 printf문
int main()
{
   ((int(*)(const char *,...))0x8048300)("hi\n"); // 주소를 적을 경우는 주소가 변하기때문에 한계가 있다.
   return 0;
}
int (*)(const char *, ...); // scanf문의 type형
int main()
{
   int a;
   int (*p)(const char *, ...);
   p=scanf;    // scanf 대신 printf를 대입하면 p를 printf로 사용가능

   p("%d", &a);
   p=printf;
   p(%d", a);
   return 0;
}