글
Chapter 12. 함수 포인터
책 정리/좋은 프로그래밍 습관
2009. 9. 4. 21:14
함수 포인터를 이용하면 프로그램의 유지보수가 간편해 지고, 실행하는 부분의 코드가 간편해 진다.
예
- int (* f)(char *);
- puts("요건 그냥 puts()함수다.\n");
- f = puts;
- f("요건 함수 포인터 f()를 사용한 함수다.\n");
함수포인터를 이용한 계산기 프로그램
- #include <stdio.h>
#include <string.h>
#include <stdlib.h> - int Add(int, int );
int Minus(int, int );
int Multiply( int, int );
int Divide(int, int );
int CheckOp( char );
int (* Calc[4])(int, int) = { Add, Minus, Multiply, Divide }; - void main()
{
int iLeft, iRight;
int ret;
char op; - puts("사칙 연산 계산기 입니다.\n");
puts("첫번째 인수 = " );
scanf("%d", &iLeft );
fflush( stdin ); - puts("두번째 인수 = ");
scanf("%d", &iRight );
fflush( stdin ); - puts("연산자 = ");
scanf("%c", &op);
ret = Calc[CheckOp( op )]( iLeft, iRight ); - printf("계산 결과 : %d\n", ret );
- system("pause");
} - int Add( int left, int right )
{
return left + right;
} - int Minus( int left, int right )
{
return left + right;
} - int Multiply( int left, int right )
{
return left*right;
} - int Divide( int left, int right )
{
return left/right;
} - int CheckOp( char op )
{
switch( op )
{
case '+':
return 0;
case '-':
return 1; - case '*':
return 2; - case '/':
return 3;
} - return -1;
}
이 글은 스프링노트에서 작성되었습니다.
'책 정리 > 좋은 프로그래밍 습관' 카테고리의 다른 글
Chapter 14. 공용체 (0) | 2009.09.04 |
---|---|
Chapter 13. 구조체 (0) | 2009.09.04 |
Chapter 11. 포인터 (0) | 2009.09.04 |
Chapter 10. 연산자 (0) | 2009.09.04 |
Chapter 09. typedef 와 enum (0) | 2009.09.04 |