함수에 대해서 포인터를 사용하여 활용 하는 방법
소스를 보면 이해가 갈듯, 어디서 써야 할지는 솔직히 잘 모르겠다;
함수의 인자로 함수를 보내나?? 흠--a;
#include <stdio.h>
int plus(int n1, int n2);
int minus(int n1, int n2);
int doubles(int n1, int n2);
int divied(int n1, int n2);
void main()
{
int n1;
int n2;
int chk;
int (*fp)(int, int); // 함수는 포인터로 존재
while(1)
{
printf( "1. 더하기\t2. 빼기\n3. 곱하기\t4. 나누기\n5. 종료\n" );
scanf( "%d",&chk);
switch(chk)
{
case 1:
fp = plus;
break;
case 2:
fp = minus;
break;
case 3:
fp = doubles;
break;
case 4:
fp = divied;
break;
}
if( chk == 5 )
break;
scanf( "%d%d", &n1, &n2 );
printf( "%d\n", fp(n1, n2) );
}
}
int plus( int n1, int n2 )
{
return n1 + n2;
}
int minus(int n1, int n2)
{
return n1 - n2;
}
int doubles(int n1, int n2)
{
return n1 * n2;
}
int divied(int n1, int n2)
{
return n1 / n2;
}

소스, 결과 참조
int (*fp[10])(int, int); // 함수 포인터는 배열도 가능하다.
fp[0] = sum; // 물론 배열로도 생성 가능
ps : 알아 보니, 함수 포인터는 주로 랜더링에서 사용을 하게 된다는데,
게임 루프내에서 랜더링 함수를 실행 하게 될때
랜더1()
랜더2()
등등랜더()
를 하기 보다
루프전에 함수포인터에 넣어 주어
for를 사용해 간략하게 표현하기 위함이라고 한다.
'프로그래밍 > C언어' 카테고리의 다른 글
__FILE__, __LINE__ (0) | 2010.03.10 |
---|---|
함수 포인터(2) (0) | 2010.03.10 |
2차원 배열 동적 할당 (0) | 2010.03.09 |
가변 인수 (0) | 2010.03.08 |
문자열과 배열 (0) | 2010.03.08 |