이번에는 C언어 에서 Function 과 Local Function에 대해 예제를 통해 알아보자. 먼저 C 언어에서 Function은 간단하게, 특정한 일을 수행하는 코드의 집합이라고 볼 수 있다. 우리가 여태 예제로 보았던 scanf, printf, while, for, if 등 이런 코드들을 함수라고 부른다. 우리는 여태 main 이라는 함수 내에서 라이브러리에서 지정한 위의 코드들 (함수) 들을 이용하여, 코딩을 해왔다. 하지만 코드의 길이가 길어지거나, 코드의 문법이 복잡해지는 경우 지역함수(Local Function)을 따로 선언하여, 코드를 좀더 간편하게 만들 수 있다.
함수의 기본형태는 다음과 같다. main 함수의 경우, int main() 이런식으로 사용되며, int는 출력형태를 의미, main은 함수의 이름, ()이곳은 Parameter 입력형태가 들어간다. 함수는 return값에 따라서 함수의 출력형태가 결정된다. 그것을 유의하여 main앞에 출력형태를 잘 입력해 주면 될것이다. (float ,char 같은) 그리고 Prototype에 대해서 잠시 알아보자. C언어는 하향식으로 프로그램이 진행이된다. 그렇다 보니, main함수에서 특정 Local 함수를 사용하려 할 때, main 함수 위에 local 함수에 대한 언급이 없다면, 프로그램이 작동하지 않는다. 그래서, Prototype이라는 기능을 이용해, main함수 위에, local 함수를 언급해 줄 수 있다. 아래 예제를 확인해 보자.
위의 예제는 1부터 입력한 정수까지 수열합을 계산하는 프로그램이다. 여기서 아래 add라는 Local 함수가 만들어 졌다. 그리고 이 지역함수를 main에 사용하기위해 main 함수위에, int add(int j); 라고 prototype을 선언해 주었다. main함수 내부에 sum이라는 부분에서 local function이 작동된다. 위에 scanf에서 입력받은 i값이 local 함수에서 j로 들어가 함수 내부에서 0에서 j값 (메인에서 i값) 이 될때 까지 1씩 더해준다. 그리고 입력받은 값 만큼 더해준 뒤, local 함수를 빠져나와 printf 에 의해 화면에 출력된다. 결과는 아래와 같이 나온다.
또 다른 예제를 살펴보자. 아래는 입력받은 두개의 정수로 사각형의 넓이를 계산하는 함수이다. 입력받은 값 하나는 가로, 다른 하나는 세로가 되어 이 값들을 곱하여 사각형의 넓이를 구할 수 있다.
위의 예제는 더 간단하다. 역시 Area라는 지역함수의 prototype을 main함수 위에 선언해 주었다. 두 함수 모두 return값이 int 형이므로, int로 함수를 선언하였다. 예제의 결과는 아래와 같이 나온다.
여기까지 Local Function에 대해 아주 간단히 알아보았다. 본래 더 깊은 여러가지의 의미들이 내포되어 있다. 더 근본적으로 C 언어를 공부하고 싶은 사람들에게 아래의 책을 추천한다.
아래의 링크를 타고 가서 확인해 볼 수 있으며, PDF를 구하고자 하시는 분은 메일을 보내주시기 바랍니다. https://g.co/kgs/Wm6Lgy
Comments