본문 바로가기

Code.D IT 강좌/C언어

[C언어 강좌] 함수(function)

C언어 강좌



함수(function)

특정 작업을 하는 일련의 코드를 하나의 이름(함수의 이름)으로 묶어 놓은 코드의 집합을 말합니다.

함수는 입력 값을 받아서 처리한 후 하나의 결과값을 반환하는 역할을 합니다.

함수를 사용하는 이유는 무엇일까요?

한번 함수를 정의하면 언제든지 여러 번, 호출해서 실행할 수 있으므로 반복 작업에 많이 쓰입니다.



예를 들어보겠습니다. 과일을 짜서 음료수 즙을 만드는 코드를 작성한다고 상상합시다.

함수를 사용하지 않는다면 일반적으로 아래와 같이 나타냅니다.



사과를 따는 코드 1;

딴 사과를 짜서 즙으로 만드는 코드 1-1;

오렌지를 따는 코드 2;

딴 오렌지를 짜서 즙으로 만드는 코드 2-1;

포도를 따는 코드 3;

딴 포도를 짜서 즙으로 만드는 코드 3-1;



위와 같은 복잡한 코드를 함수를 이용하여 간단하게 표현하겠습니다.

우선 과일을 짜는 함수 squeeze를 만듭니다. 그리고서 squeeze 함수를 호출하여 사용합니다.



squeeze(과일){

과일을 짭니다;}


squeeze(사과) 코드1;

squeeze(오렌지) 코드2;

squeeze(포도) 코드3;



위와 같이 코드를 간결하고 가독성이 좋게 표현할 수 있는 거죠.

(간략하게 설명하여 생략을 많이 하였으니 참고하시기 바랍니다.)



참고

절차지향 언어인 C언어에서는 '함수'

객체지향 언어인 Java에서는 함수를 '메소드(Method)'라고 부릅니다.



함수 형태

출력형태        함수명(입력형태){

수행구문;

return 0;

}



Ex)

 
int main(void){         

printf("Hello World!");

          return 0;
}



함수 호출 과정

1) int x, int y의 입력 형태를 갖는 plus 함수를 정의합니다.

2) x+y의 결과값을 result에 저장합니다.

3) result를 반환합니다.

4) 운영체제가 main() 함수를 호출합니다.

- 파일의 위에서 아래 방향으로 실행합니다. (절차지향언어)

5) main 함수에서 plus 함수를 호출해서 x=3, y=7을 저장한 뒤 출력합니다.

6) plus 함수를 호출해서 x=13, y=17을 저장한 뒤 출력합니다.

7) 프로그램을 종료합니다.



위의 순서대로 코드를 작성해보겠습니다.



#include <stdio.h>

//1) int x, int y의 입력 형태를 갖는 plus 함수를 정의합니다.
int plus(int x, int y){

     int result;

      //2) x+y의 결과 값을 result에 저장합니다.
     result = x + y;   

      //3) result를 반환합니다.
     return result;    
}


//4) 운영체제가 main() 함수를 호출합니다.
int main(void){    

     //5) main함수에서 plus 함수를 호출해서 x=3, y=7을 저장한 뒤 출력합니다.
     int answer;
     answer = plus(3, 7);   
                             
     printf("%d\n", answer);

      //6)  plus 함수를 호출해서 x=13, y=17을 저장한 뒤 출력합니다.
     answer = plus(13, 17);
     printf("%d\n", answer);

     //7) 프로그램을 종료합니다.
     return 0;
                
}   



다음은 출력 결과입니다.