본문 바로가기
Develop/C

10 C언어 함수

by 구운밤이다 2016. 6. 30.
728x90
반응형

2016/06/29 - [컴퓨터/C언어] - 9 C언어의 반복문 조절 continue, break, goto


오늘은 드디어 함수에 대해서 배우는 날입니다!! 함수는 입력을 받는 전달인자가 존재하고 적절한 출력인 반환값이 존재합니다!! 메인 함수를 예를 들어볼게요~


int main (void)


메인함수는 이렇게 생겼죠! 저기서 int 는 반환 형태를 얘기해요 그래서 리턴 값을 정수로 주면 되는 거죠 그리고 main 은 함수의 이름을 얘기하고 void는 전달인자를 의미하는 자리인데  메인 함수이기 때문에 아무것도 전달받지 않는다는 뜻의 void가 들어가 있는 거에요


그럼 함수를 void를 기준으로 4가지로 나눠볼게요

유형

전달 인자 

반환 값 

 1

 2

 3

 4







X 가 들어가 있는 곳에 void가 들어간다고 보시면 되요! 그럼 이제 유형별로 살펴 보면서 덧셈 연산을 해주는 프로그램을 만들어 보도록 할게요


유형 1 : 전달 인자와 반환 값 모두 있는 경우


간단하게 두 숫자를 전달받아 덧셈을 진행하는 함수를 만들어 보도록 할게요!


int Add(int n1, int n2) {

    int sum = n1 + n2;

    return sum;

}


저기 (int n1, int n2)는 메인함수에서 선언된 변수에요 그렇게 전달 인자를 전달 받아 sum이란 변수에 더해 주고 그 변수를 리턴해주는 거죠

그리고 이 함수가 실제 프로그램에서 어떻게 사용되는지 예제를 통해 보이겠습니다.


#include <stdio.h>


int Add(int n1, int n2) {

    int sum = n1 + n2;

    return sum;

}


int main(void) {

    int n1, n2, sum;

    scanf("%d %d", &n1, &n2);

    sum = Add(n1, n2);

    

    printf("sum : %d", sum);

}


그리고 이렇게도 사용 가능합니다.


#include <stdio.h>


int Add(int n1, int n2);


int main(void) {

    int n1, n2, sum;

    scanf("%d %d", &n1, &n2);

    sum = Add(n1, n2);

    

    printf("sum : %d", sum);

}


int Add(int n1, int n2) {

    int sum = n1 + n2;

    return sum;

}



유형 2 : 전달 인자는 있고 반환 값이 없는 경우


void ShowResult(int n) {

    printf("sum : %d", n);

}


이 유형은 어떤 결과를 출력할 때 많이 사용해요!


유형 3 : 전달 인자가 없고 반환 값이 있는 경우


int Scan(void) {

    int n;

    scanf("%d", &n);

    return n;

}


아까 봤듯이 main 함수도 이 유형에 속하는데요 이 유형은 함수가 종료될 때 어떤 값을 전달해 줍니다


유형 4 : 전달 인자와 반환 값이 둘다 없는 경우


void StartPage(void) {

    printf("10 C언어의 함수\n");

    printf("함수의 종류를 배우고 있습니다\n");

    printf(" 개의 정수를 입력 : ");

}


이 유형은 이렇게 첫 화면을 출력하는 용도로 많이 사용합니다 그럼 이 함수들을 합쳐서 아까 그 프로그램 보다 더 깔끔한 프로그램을 만들어 볼께요!


#include <stdio.h>


int Add(int n1, int n2) {

    int sum = n1 + n2;

    return sum;

}


void ShowResult(int n) {

    printf("sum : %d", n);

}


int Scan(void) {

    int n;

    scanf("%d", &n);

    return n;

}


void StartPage(void) {

    printf("10 C언어의 함수\n");

    printf("함수의 종류를 배우고 있습니다\n");

    printf(" 개의 정수를 입력 : ");

}


int main(void) {

    int n1, n2, sum;

    StartPage();

    n1 = Scan();

    n2 = Scan();

    sum = Add(n1, n2);

    ShowResult(sum);

}


이렇게 만들었습니다.



지금은 쉬운 프로그램이라 딱히 이렇게 프로그램을 짤 필요는 없지만 나중엔 이렇게 함수를 잘 만들어 놓으면 프로그램을 파악하기 쉽겠죠?


#include <stdio.h>


int Add(int n1, int n2);

void ShowResult(int n);

int Scan(void);

void StartPage(void);


int main(void) {

    int n1, n2, sum;

    StartPage();

    n1 = Scan();

    n2 = Scan();

    sum = Add(n1, n2);

    ShowResult(sum);

}


int Add(int n1, int n2) {

    int sum = n1 + n2;

    return sum;

}


void ShowResult(int n) {

    printf("sum : %d", n);

}


int Scan(void) {

    int n;

    scanf("%d", &n);

    return n;

}


void StartPage(void) {

    printf("10 C언어의 함수\n");

    printf("함수의 종류를 배우고 있습니다\n");

    printf(" 개의 정수를 입력 : ");

}


그리고 이렇게 프로그램을 만들수도 있답니다~


모르는 것은 댓글이나 쪽지로 남겨주시면 성심 성의껏 답변해드리겠습니다!! 댓글공감구독(이웃추가)는 블로거에게 큰 힘이 됩니다! 부탁드리면서 이번 포스팅을 마치도록 하겠습니다! 지금까지 딘또였습니다

728x90
반응형

'Develop > C' 카테고리의 다른 글

12 C언어 변수의 접근 범위!  (0) 2016.07.03
11 C언어 재귀 함수  (0) 2016.07.02
9 C언어의 반복문 조절 continue, break, goto  (0) 2016.06.29
8 C언어의 조건문  (0) 2016.06.29
7 C언어의 반복문과 특수문자!!  (0) 2016.06.27

댓글