함수(function)

math function

함수 개념

함수(function)를 아주 간단히 표현하면 일정한 기능을 수행하는 코드라고 할 수 있겠습니다.
우리는 이미 함수를 계속해서 사용해 왔습니다.
main ( ) , printf ( )등을 예로 들 수 있겠습니다.
그런데 이 함수들은 C언어 라이브러리에서 제공하는 함수들입니다.
즉 정해진 기능을 구현할 뿐입니다.
따라서 개발자가 의도하는 기능을 원하는 대로 실행하기 위해서는 함수를 직접 작성 해야 합니다.
보통 함수는 크고 복잡한 기능을 구현하려고 할 경우에 그 기능을 작은 단위로 나누어서 실현 하려고 하는 때에 자주 사용됩니다.
또한 함수를 미리 만들어 놓을 경우 그 것이 필요할 때 호출만 하면 바로 사용이 가능하므로 매우 편리 합니다.

함수 이해를 위한 3요소

  • 함수의 선언
  • 함수의 정의
  • 함수의 호출

함수의 선언이란 컴파일러에게 함수의 구조를 통지하는 것이라 보면 됩니다.
즉, 자신의 존재를 알리는 것입니다. 아래와 같은 함수 원형(prototype)형식을 취합니다. 특이한 것은 함수의 몸통(블록)이 없습니다.

int add ( int a , int b) ;

함수의 정의는 본격적으로 함수를 만들어 내는 것입니다. 즉 함수가 수행할 기능을 블록 안에 작성합니다. 아래 코드를 봅시다.

int add ( int a, int b)
{
    return a + b ;
}

함수의 호출은 말 그대로 함수를 필요로 하는 곳에서 함수를 불러서 사용하는 것입니다. 호출할 때는 일반적으로 인수를 전달 합니다.

add (10 , 20 ) ;

함수 정의

함수를 만드는 데에는 일반적으로 4가지가 필요합니다.
이름 , 매개변수 , 반환 형태, 기능 입니다.
함수는 main 함수와 같이 이름이 있어야 합니다. 이름을 작성할 때는 그 함수가 수행하는 기능과 유사한 이름으로 하는 것이 좋습니다.
매개변수란 함수가 자기의 기능을 구현하는데 필요한 데이터를 의미 합니다.
반환 형태는 함수가 이행된 후에 산출되는 값의 형태를 뜻합니다.
기능은 함수의 내용 즉 함수가 수행할 기능을 의미 합니다. 아래 예제를 봅시다.

예제

Example Function

3행 : 함수 add를 선언하고 있습니다. 함수 선언에는 블록(몸통)이 필요하지 습니다.
5행 : main 함수의 시작 지점 입니다.
10행 : 정수 a , b 를 인자로 전달하면서 add 함수를 호출하고 있습니다.
14행 : main 함수의 종료 지점 입니다.
16행 : add 함수의 정의가 시작되는 지점 입니다.
20행 : 매개 변수 x , y 의 값을 합산한 값이 저장되는 임시 변수 temp 입니다.
그런데,18행 ,20행을 삭제하고 22행을 return (x + y) ; 로 수정 가능합니다.
22행 : add 함수를 호출한 곳(예제에서는 10행)으로 함수 값을 반환하는 return문 입니다.
23행 : add ( )의 종료 지점 입니다.