본문 바로가기
프로그래밍언어/C언어

함수 적용 2가지 방법 part2

by J코딩 2022. 11. 3.
반응형

함수를 프로그래밍에 적용하는 두 번째 방법으로 함수의 선언과 함수의 호출 함수의 정의가있습니다.

 

○ 함수의 선언 → 함수의 호출 → 함수의 정의

  • 함수의 선언 함수의 목록이 있는 문장
  • 함수의 호출 선언한 함수를 호출하는 문장
  • 함수의 정의 함수의 기능을 정의한 문장

그림의 오른쪽 그림은 함수의 선언부가 새롭게 추가되었습니다. 유의해서 보면 함수의 정의부에 있는 'int sum (int x, int y)'을 복사해서 세미콜론(;)을 마지막에 삽입한 간단한 구조입니다. 이것을 함수의 원형(Prototype)이라고 하는데 두 번째 방법은 함수의 원형을 선언하는 것입니다.

함수의 원형을 선언했기 때문에 main()함수에서 sum()함수를 호출하면 위에 sum()함수가 있다고 판단해서 함수의 동작이 정상적으로 수행됩니다. 이처럼 두 번째 방법은 함수 적용에 있어서 가장 일반적인 방법입니다. 이유는 함수의 원형 선언을 통해서 함수 목록이 몇 개인지 직관적으로 쉽게 분석할 수 있고, 대략적으로 함수의 기능을 분석할 수 있기 때문입니다.

 

다음 예제는 실수를 두 개 입력받아 사칙 연산 중 나눗셈을 하는 프로그램입니다. 함수의 형태네 가지에 대하여 함수의 선언→ 함수의 호출 함수의 정의를 수행하고 있습니다. 별도의 설명을 하지 않아도 쉽게 이해할 수 있을 것입니다.

다음 예제는 키보드로부터 정수 한 개를 입력받아 1부터 입력받은 정수까지의 합을 구로그램입니다. 예를 들어, 3이라면 1+2+3을 수행합니다. 이제껏 만든 함수와는 조금 더 형태의 함수로 호출받은 함수 내에서 또 다른 함수를 호출하고 있습니다.

예제는 main() 함수에서 sum()함수를 호출하고, sum() 함수 내에서 다시 input() 함수를호출하는 구조입니다. 12행에서 main() 함수 내에서 sum() 함수를 호출하고 있고, 21행에서sum() 함수 내에서 input()함수를 호출하고 있습니다.

30행부터 35행까지에서 input() 함수 내에서는 scanf() 함수를 통해 키보드로부터 문자 하나를 입력받아 변수 val에 저장합니다. val의 값은 return 문을 통해서 21행 변수 num에 값을반환하고, 23행부터 26행까지에서 반복문을 통해 덧셈 연산을 수행합니다. 덧셈 연산이 끝난후 27행에서 return 문을 통해 변수 total 값을 12행 변수 result에 값을 반환하고 13행에서result를 매개 변수로 하여 output() 함수를 호출합니다. 36행에서 output() 함수가 실행되어결과를 출력합니다.

앞의 예제는 다소 복잡하게 왔다 갔다 하며 설명한 것처럼 보이지만, 함수가 호출돼 있을 때 함수의 정의부를 찾아 기능을 수행하는 아주 간단한 논리입니다. 결론적으로, main 수에서만 함수를 호출하는 것이 아니라 다른 함수 내에서도 함수를 호출할 수 있다는 것입니다.

반응형

'프로그래밍언어 > C언어' 카테고리의 다른 글

변수의 종류와 범위 - 지역변수  (0) 2022.12.23
함수 적용 2가지 방법 part1  (0) 2022.11.02
함수의 형태 네 가지  (0) 2022.09.28
다양한 형태의 함수들  (2) 2022.09.27
함수란 무엇인가  (0) 2022.09.06

댓글