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

함수란 무엇인가

by J코딩 2022. 9. 6.
반응형

사용자(커피 자판기를 사용하는 사람)

  • 입력 돈을 넣습니다, 커피를 선택합니다.
  • 출력 커피를 꺼냅니다.

개발자(커피 자판기를 만드는 사람)

  • 입력 돈을 넣습니다, 커피를 선택합니다.
  • 자판기의 기능 커피 자판기 내부에서 커피를 만듭니다.
  • 출력 커피를 꺼냅니다.

 

커피 자판기의 사용자 입장에서는 돈을 넣고(입력), 선택한 커피를 꺼내서 마시기(출력)만 하면 됩니다. 그러나 커피 자판기를 만드는 개발자 입장에서는 사용자가 돈을 넣고(입력) 커피를 만들고(자판기의 기능) 마지막으로 사용자가 커피를 꺼낼 수 있게(출력) 모든 과정을 처리해 주어야 합니다. 추가로 커피를 만드는 자판기의 기능을 고려해야 합니다. 여기서 자판기의 기능을 우리는 함수의 기능이라고 말할 수 있습니다.

9.1 함수란

컴퓨팅 세계에서 함수란 특정 작업을 수행하는 코드의 집합이라고 정의할 수 있습니다. 다음 예는 main() 안에 한 줄의 printf() 함수만이 있지만, 이 프로그램에서도 함수의 호출이 있습니다. 즉, printf()함수를 호출해서" " 안의 문자열을 출력하게 합니다.

이제껏 만들었던 프로그램은 사실 main() 함수에서 다른 함수들을 호출하여 사용하고 있었습니다. 예를 들면 printf( )와 scanf() 함수를 main() 함수 내에서 호출하여 사용한 것입니다.이들 대부분의 함수는 C 언어에서 제공하는 표준 라이브러리 함수였습니다. 그러나 프로그래머의 필요에 따라 직접 함수를 만들어서 사용할 수 있는데 이것을 사용자 정의 라이브러리 함수라고 부릅니다.

프로그램 개발의 생산성을 높이기 위해서 printf(), scanf() 함수 등과 같이 표준 라이브러리함수를 사용하기도 하지만, 프로그램의 요구 사항을 충족시키기 위해서 프로그래머가 직접 작성한 사용자 정의 라이브러리 함수를 사용하기도 합니다. 이러한 경우를 대비하기 위해 함수를작성하는 방법을 배워야 합니다.

C 프로그램을 작성하면서 코드의 길이가 기본적인 수준을 넘는 경우에는 함수 단위로 작성해야 코드의 안정성이 좋아지고, 에러를 수정하기가 쉽습니다. 즉, 대단위의 프로그램은 수정, 유지 보수가 쉽지 않기 때문에 기능별로 세분화하는 것이 필요한데 이를 지원하는 것이 바로 함수입니다.

또한 함수는 코드의 재사용성이 좋습니다. 함수는 한번 잘 만들어 놓으면 필요할 때마다 호출해서 사용할 수있기 때문에 함수를 작성할 때는 재사용을 고려해야 합니다. 하나의 main() 함수 안에서 모든 것을 코드화 놓으면 프로그램이 복잡해질 수 있습니다. 따라서 복잡성을 줄이면서 응집력 있는 함수를 설계하고 개발하는 데힘써야 합니다.

반응형

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

함수의 형태 네 가지  (0) 2022.09.28
다양한 형태의 함수들  (2) 2022.09.27
break와 continue  (0) 2022.08.20
switch~case 문의 한계  (0) 2022.08.03
switch 문에 사용되는 default와 break  (0) 2022.08.01

댓글