본문 바로가기

C Language/Programming Course

5장 함수(2부 함수의 기본 원형) 첫번째 시간


5장 함수
2부 함수의 기본 원형


   이번시간에는 함수를 자세히 한번 훑어 보겠습니다.
   자세하게 알아 보는 것이 아니라 간단하게 기본적인 지식 정도만 먼저 알아 보도록 하겠습니다.
   함수의 기본 형태는 일단 main함수로 설명드릴께요.

    main 함수의 기본형태는

    int main(void)

    {
       
return 0;
    }

    입니다. 
    이 함수를 가지고 자세히 보도록 하겠습니다.
    
    먼저 int는 되돌림값 즉, return 값의 자료형 의미 합니다.
    main에서 보면 리턴 값이 0이죠!?
    즉, 0이 int형이기에 int라고 합니다. 
    그럼 메인 함수에서는 리턴 할 것이 없는데 왜 저렇게 쓰면
    main함수에서 0이라는 값을 리턴하는 것은 이 소스는 문제 없이 완료가 되었다는
    것을 나타내는 것입니다.
    즉, 지금은 모르는 함수 이지만 exit( ) 라는 함수가 있습니다.
    이 함수에서 괄호 안에 0이 들어 가 있으면 정상적인 종료를 나타내는 것입니다.
    이 main 함수의 결과가 exit 괄호에 들어 간다고 생각 하시면 됩니다.
    이 내용은 제가 C Programming 폴더에 void main과 int main 비교를 하면서
    설명이 되어 있으니 그 부분을 참고 하시길 바랍니다. 

    그리고 main은 말 그대로 함수 이름을 말하는 겁니다.
    일단 main은 저렇게 함수 이름이 정해져 있지만,
    그외에는 자기 마음대로 정할 수 있습니다.
    하지만 함수가 하는 일에 맞춰 이름을 정하는 것이 보통 관례입니다
    마지막으로 (void)에는 이 함수에서 받는 인수들을 적는 것입니다.
    일단 여기 main에서는 넘겨 받는 것이 없기 때문에
    void라고 적었습니다.
    void로 안 적고 그냥 비워도 상관 없습니다.  

    이제 간단한 함수를 한번 보겠습니다. 

    int Sum(int a, int b)

    {
        return a+b;
    }

     이 함수를 해석 해 보면
    되돌릴 값의 자료형은 int형 이고 이 함수의 이름은 Sum 이면
    이 함수가 받는 인수는 int형 a, b입니다. 
    라고 정의를 내릴 수 있겠죠!?  

    이제 함수 사용 하는 예제를 볼께요

 함수 미 사용

 함수 사용

 

#include <stdio.h>

 

int main()

{

    int a, b;

    printf("값을 입력 하세요 : ");

    scanf("%d %d", &a, &b);

 

    printf("이 두 값의 합은 %d 입니다 \n", a+b);

 

    return 0;

}

 

#include <stdio.h>

int Sum(int a, int b);

int main()

{

    int a, b;

    printf("값을 입력 하세요 : ");

    scanf("%d %d", &a, &b);

 

    printf("이 두 값의 합은 %d 입니다 \n", Sum(a, b));

 

    return 0;

}

int Sum(int a, int b)

{

    return a+b;

}


 
    이렇게 보면 함수를 사용 안하는 게 더 간단해 보이죠!?
    하지만 나중에 프로그램을 많이 짜시다가 보면 자연 스럽게 함수를
    만들어야 될때가 오게 될껍니다. 
    그 것은 제가 이야기 하기 보다는 몸으로 느끼면 금방 알게 될 것입니다. 
    c언어로 간단한 프로그램을 어느 정도 하고 중간 수준의 프로그래밍을 할 때 정도면
    충분히 느낄 것입니다.