함수 호출

이전에 설명되지 않은 이름이 표현식에 나타나고 왼쪽 괄호 뒤에 오는 경우 상황에 따라 함수의 이름으로 간주됩니다.

function_name (x1, x2,..., xn)

 

인수(공식 매개변수)는 값별로 전달됩니다, 즉, 각 표현식 x1,..., xn이 계산되고 값이 함수에 전달됩니다. 수식 계산 순서와 값 로드 순서는 보장되지 않습니다. 실행 중에는 시스템은 함수에 전달된 인수 수와 유형을 확인합니다. 이러한 함수의 주소 지정 방식을 값 호출이라고 합니다.

함수 호출은 수식이며, 이 값은 함수에 의해 반환되는 값입니다. 위에서 설명한 함수 유형은 반환 값의 유형과 일치해야 합니다. 이 함수는 글로벌 범위에 있는 프로그램의 모든 부분, 즉 다른 함수에서 선언되거나 설명될 수 있습니다. 다른 함수 내부에서 함수를 선언하거나 설명할 수 없습니다.

예제:

int start()
  {
   double some_array[4]={0.3, 1.4, 2.5, 3.6};
   double a=linfunc(some_array, 10.5, 8);
   //...
  }
double linfunc(double x[], double a, double b)
  {
   return (a*x[0] + b);
  }

기본 매개 변수를 사용하여 함수를 호출할 때 전달될 매개 변수 목록을 제한할 수 있지만 첫 번째 기본 매개 변수 앞은 사용할 수 없습니다.

예제:

void somefunc(double init,
              double sec=0.0001, //기본 값 설정
              int level=10);  
//...
somefunc();                      // 잘못된 호출. 첫 번째 매개 변수를 제공해야 합니다.
somefunc(3.14);                  // 정상적 호출
somefunc(3.14,0.0002);           // 정상적 호출
somefunc(3.14,0.0002,10);        // 정상적 호출

함수를 호출할 때 다음과 같은 기본값을 가진 매개 변수를 건너뛸 수 없습니다.

somefunc(3.14, , 10);           // 잘못된 호출 -> 두 번째 매개 변수를 건너뛰었습니다.

더 보기

오버로드, 가상 함수, 다형성