'함수'에 해당되는 글 1건

  1. 2009.05.02 함수 일반론

* 함수를 정의하는 이유
  - 모듈화(기능별 분리)에 의한 프로그램의 질 향상 가능
  - 유지보수 및 확장의 용이성
  - 문제 해결의 용이성("Divide and conquer!")

 * 4가지 형태의 함수
  1 전달인자(O) 반환값(O)

   int Add( int i, int j )
   {
    int result = i+j;
    return result;
   }


  2 전달인자(O) 반환값(X)
   void Result_Print(int val)
   { 
    printf("*** 반환값이 없고 매개변수 있는 함수 *** \n"); 
    printf("덧셈결과 : %d \n" , val);
    printf("end \n");
   }


  3 전달인자(X) 반환값(O)
   int Input_Scan(void)
   {
    printf("*** 반환값이 있으나 매개변수가 없는 함수 *** \n"); 
    int num=0;
    scanf("%d", &num);
    return num;
   }

  4 전달인자(X) 반환값(X)
   void Intro(void)
   {
    printf("*** 반환값과 매개변수가 없는 함수 *** \n"); 
   }

  int:반환형 main:함수이름(전달인자(매개변수) 입력형태)
  {
   함수몸체
   return 반환값:반환값이 있는 함수형태에 한함
  }

 * 함수의 원형
  문서 초반에 이후에 정의될 함수에 대한 정보를 제공
 C는 절차지향이므로 컴파일러 특성상 main에서 실행할 함수는 미리 설정되어있어야 한다.
 만약 main함수가 먼저 실행한다면 빌더다운 발생한다. 
 
 int Add( int i, int j )
 {
  int result = i+j;
  return result;
 }


 int main(void)
 {
  
  int d;
 d = Add(3,4); 
  printf("%d \n" , d);
  return 0;
 }
----------------------------------------------------------------------------------------------
일반적으로 main을 제일 위에 설정한다 이를 위해서는 아래의 본 코딩처럼 "함수의 원형" 선언을 해야 한다.

int Add( int i, int j );  //함수의 원형

int main(void)
{
 
 int a, b, result;
 a = 3;
 b = 4;

 result = Add(a , b);
 Result_Print(result);

 return 0;
}

int Add( int i, int j )
{
 int result = i+j;
 return result;
}



현재 함수의 원형인 경우 C에서만 필요한 형태이고 우리는 interface나 그냥 scope에 의해 설정과 접근이 용이하다. 따라서 actionscript에서는 원형이 필요없다.

Posted by 버터백통