반응형

C언어 함수의 구조는 

[return 타입] 함수명( [input타입 변수명] )

ex)   int   main(   int a   )

 

 

함수명은 말 그대로 함수 이름 지정.

input 은 이 함수가 실행되기 위한 입력 값을 지정하는것.

return 타입은 이 함수가 연산이되어 return되는 값의 타입.

 

 

C언어 함수 만들기 템플릿은 아래와 같다.

 

<함수 선언>

<Main 함수>

<함수 정의>

 

아래 예를 보면 알기 쉽다.

#include <stdio.h>

// 함수의 선언
int Increment_num(int n);

int main(void)
{
    int a = 2;
    int num;

    num = Increment_num(a);
    printf("%d\n", num);

    return 0;
}

// 선언한 함수의 실제 정의 (몸통)
int Increment_num(int n)
{
    // 위에서 받는인자 n이 오면 증가시켜 리턴
    n++;
    return n;
}

int a 값이 함수에가서 계산되는 형태.

값이 어떻게 연산되는지 순서를 나타냄.

a값의 변화는 없다. a는 단지 함수의 입력인자(input)이 되었을 뿐이다.

그리고 함수는 a에 들어있는 값 2가 연산이 되어 n으로 리턴한다.

리턴된 값 3은 최종적으로 num에 저장된다.

 

아래와 같이 2개 그리고 그 이상의 input인자도 받을 수 있다. 다만 2개 이상의 return은 불가능하다.

아래와 같이 if 문에 맞는 결과를 따로 return하도록 함.

int Increment_num(int n, int m)
{
    if (n > m)
    {
        n++;
        return n;
    }
    else
    {
        m--;
        return m;
    }
}

* 알아두기.

 - 로컬함수 내에서 선언한 변수는 해당 함수가 수행되는 동안 유효하며, 결과를 리턴하면 메모리를 해제 하여 사라진다.

 - 변수를 전체 함수에서 사용하고 싶다면 "전역변수"으로 선언해야 함.

 

반응형

+ Recent posts