C/C++ Programming

함수 포인터 응용 몇가지.


함수 포인터 선언::


#include <stdio.h>


void (*FunC)(void); 

// void형 입력, void형 리턴을 갖는 함수의 주소를 저장할 수 있는 함수 포인터 "FunC"


void My_print(void)

{

printf("출력되었습니다. \n");

}


int main(void)

{

FunC = My_print;


FunC(); // 출력되었습니다.


return 0;

}


함수 포인터 배열 선언::


#include <stdio.h>


void (*FunC[10])(void);


void My_print(void)

{

printf("출력되었습니다. \n");

}


int main(void)

{

FunC[0] = My_print;


FunC[0](); //[ 출력되었습니다. ]출력.


return 0;

}


함수 포인터를 Return(반환)하는 함수 [1]::


#include <stdio.h>


void My_print(void)

{

printf("출력되었습니다. \n");

}


void (*FunC(int option))(void)

{

switch(option)

{

case 0:

return My_print;

default:

return NULL;

}

return NULL;

}


int main(void)

{

void (*My_FunC)(void); // 함수 포인터 선언

int option = 0;


My_FunC = FunC(option); // My_print 주소 리턴.


My_FunC(); // 출력되었습니다.


return 0;

}


함수 포인터를 Return(반환)하는 함수 [2]::


#include <stdio.h>


typedef void (*Return_FunC)(void); // 함수포인터 "Return_FunC" Typedef 선언.


void My_print(void)

{

printf("출력되었습니다. \n");

}


Return_FunC FunC(int option)

{

switch(option)

{

case 0:

return My_print;

default:

return NULL;

}

return NULL;

}



int main(void)

{

void (*My_FunC)(void); // 함수 포인터 선언

int option = 0;


My_FunC = FunC(option); // My_print 주소 리턴.


My_FunC(); // 출력되었습니다.


return 0;

}


함수 포인터를 입력으로 받는 함수 [1]::


#include <stdio.h>


typedef void (*Return_FunC)(void); // 함수포인터 "Return_FunC" Typedef 선언.


void FunC(Return_FunC Name)

{

Name();

}


void My_print(void)

{

printf("출력되었습니다. \n");

}



int main(void)

{

FunC( My_print );


return 0;

}


함수포인터를 입력으로 받는 함수 [2]::


#include <stdio.h>


void FunC(void (*My_FunC)(void))

{

My_FunC();

}


void My_print(void)

{

printf("출력되었습니다. \n");

}



int main(void)

{

FunC( My_print );


return 0;

}


'C/C++ Programming' 카테고리의 다른 글

How to Screen Capture in C++ Using Bitmap Library.  (0) 2014.03.12
Test Module  (0) 2013.11.04
첫 보드게임 온라인 제작 프로젝트 START!!  (0) 2013.10.13
C++ Study LOG.  (0) 2013.08.07
C Code Test.  (0) 2013.07.23