본문 바로가기

Programming Languages/C++

[함수]-함수의 정의와 호출-함수의 정의

함수는 C++ 프로그램을 구성하는 기본 단위이다. 모든 프로그램은 최소한 1개의 함수로 구성된다. 함수란 필요한 작업을 수행하는 프로그램 문장들을 하나의 단위로 모아 놓고, 이에 이름을 부여한 것이다. 이렇게 정의하여 놓은 함수는 프로그램의 다른 부분에서 필요할 때 호출하여 사용할 수 있다. 함수를 호출할 때에는 함수가 필요로 하는 데이터 또는 객체를 인수로 전달하여야하며, 함수는 정의된 처리를 한 후 필요하면 그 결과를 호출한 문장으로 되돌려 준다. 프로그램을 고유한 기능을 수행하는 여러 개의 함수로 나누어 작성하는 것은 기존의 프로그래밍 기법에서 프로그램을 간결하고 유지, 보수하기 쉽도록 만들기 위해 흔히 사용되고 있다. 또한 반복적으로 사용되는 작업을 함수로 만들고, 필요한 곳에서 이를 호출하여 사용하게 함으로써 프로그램의 크기를 줄이는 역할도 한다. 객체지향 프로그래밍에서는 이러한 목적과 함께 객체가 메시지를 처리하는 메소드를 구현하기 위한 방법으로 함수를 사용한다.

함수를 정의하는 일반적인 형식은 다음과 같다. 

ReturnType functionName(fParameterList) // 머리부(header)
{                         // 몸체 블록
 Type1 localVar1;         // 지역변수 선언
 Type2 localVar2;
 ......
 statement1;              // 처리할 작업을 수행하는 문장
 statement2;
 ......
 return returnExpression; // 결과값을 반환함
}

fParameterList는 함수를 호출하는 루틴이 전달하는 값(인수라고 부름)들을 받을 매개변수들의 자료형과 이름을 나열해 놓은 것으로, 이것을 형식 매개변수(formal parameters)라고 한다. 함수 내에서는 처리할 작업을 수행하는데 필요한 변수가 필요한데, 이를 위해 함수 안에 선언한 변수를 지역변수(local variable)라고 한다. 형식 매개변수와 함수 안에 선언한 지역변수는 그 함수 내에서만 사용할 수 있다. 지역변수는 함수의 첫머리에 선언하는 것이 일반적인 방법이지만, C++에서는 사용되는 곳의 앞이면 함수의 어느 위치에서든 선언하여도 된다.

함수 바깥에 선언한 변수는 프로그램의 모든 영역에서 사용할 수 있다. 이러한 변수를 전역변수(global variable)라고 한다.

함수는 정해진 작업을 수행한 후 그 결과를 반환할 수 있는데, 반환할 값의 자료형(ReturnType)을 함수의 첫머리에 먼저 지정하여야 한다. 함수는 이 자료형에 해당되는 값을 호출한 곳으로 보내야 한다. 이때 return 명령을 사용하는데, returnExpressionReturnType으로 묵시적 형 변환이 가능한 자료형의 수식을 사용해야 한다. return 명령은 위에서 제시한 형식에서처럼 함수의 마지막 문장으로 사용하게 되는 경우가 많지만, 함수의 처리를 마치려고 할 때 언제든 사용할 수 있으며, 한 함수 내에서 여러 개의 return 명령을 사용할 수 있다.

값을 반환할 필요가 없는 함수를 만들 때도 있다. 이러한 함수는 void형으로 지정하며, 이러한 함수는 함수의 마지막 문장을 처리하고 나면 그 함수를 마치고 호출한 곳으로 복귀한다. 필요하다면 return 명령으로 언제든 복귀할 수 있는데, 이 경의 return 명령은 returnExpression 없이 사용한다.

'Programming Languages > C++' 카테고리의 다른 글

[함수]-함수의 정의와 호출-함수 사용의 장점과 단점  (0) 2020.05.14
[함수]-함수의 정의와 호출-함수의 호출  (0) 2020.05.13
참조  (0) 2020.05.11
메모리 할당 및 반환  (0) 2020.05.07
포인터  (0) 2020.05.06