Chapter 12. 함수 포인터

함수 포인터를 이용하면 프로그램의 유지보수가 간편해 지고, 실행하는 부분의 코드가 간편해 진다.

 

 예

  1. int (* f)(char *);
  2. puts("요건 그냥 puts()함수다.\n"); 
  3.  
  4. f = puts;
  5. f("요건 함수 포인터 f()를 사용한 함수다.\n");

 

함수포인터를 이용한 계산기 프로그램

 

  1. #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
  2. 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 };
  3. void main()
    {
     int iLeft, iRight;
     int ret;
     char op;
  4.  puts("사칙 연산 계산기 입니다.\n");
     puts("첫번째 인수 = " );
     scanf("%d", &iLeft );
     fflush( stdin );
  5.  puts("두번째 인수 = ");
     scanf("%d", &iRight );
     fflush( stdin );
  6.  puts("연산자 = ");
     scanf("%c", &op);
      
     ret = Calc[CheckOp( op )]( iLeft, iRight );
  7.  printf("계산 결과 : %d\n", ret );
  8.  system("pause");
    }
  9. int Add( int left, int right )
    {
     return left + right;
    }
  10. int Minus( int left, int right )
    {
     return left + right;
    }
  11. int Multiply( int left, int right )
    {
     return left*right;
    }
  12. int Divide( int left, int right )
    {
     return left/right;
    }
  13. int CheckOp( char op )
    {
     switch( op )
     {
     case '+':
      return 0;
      
     case '-':
      return 1;
  14.  case '*':
      return 2;
  15.  case '/':
      return 3;
     }
  16.  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

설정

트랙백

댓글