Layer7

함수 보고서

cg10036 2019. 4. 6. 22:53

1. 함수의 정의와 쓰이는 이유는?

프로그래밍에서 함수는 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의 할 수 있습니다. 우리가 흔히 보는 printf, scanf 등도 함수이다.

함수를 쓰는 이유는 편리하고, 소스코드가 더욱 보기 편해지기 때문이다.

#include <stdio.h>

int main()
{
    printf("%d", 1 + 3);
    printf("%d", 1 + 4);
    printf("%d", 1 + 5);
    printf("%d", 1 + 6);
    printf("%d", 1 + 3);
    printf("%d", 1 + 4);
    printf("%d", 1 + 5);
    printf("%d", 1 + 6);
    printf("%d", 1 + 3);
    printf("%d", 1 + 4);
    printf("%d", 1 + 5);
    printf("%d", 1 + 6);
    printf("%d", 1 + 3);
    printf("%d", 1 + 4);
    printf("%d", 1 + 5);
    printf("%d", 1 + 6);
    printf("%d", 1 + 3);
    printf("%d", 1 + 4);
    printf("%d", 1 + 5);
    printf("%d", 1 + 6);
}

 

#include <stdio.h>

void print(void);

int main()
{
    print();
    print();
    print();
    print();
    print();
}

void print(void)
{
    printf("%d", 1 + 3);
    printf("%d", 1 + 4);
    printf("%d", 1 + 5);
    printf("%d", 1 + 6);
}

 

2. 함수를 정의와 선언하는 방법

함수를 정의/선언하는 방법은 main함수 위에 써서 정의 및 선언을 동시에 하는 방법, main함수 위에 선언을 하고 main함수 밑에 정의를 하는 방법으로 나뉜다.

#include <stdio.h>

void run(void) // 정의와 선언을 동시에 수행
{
    printf("hello world");
}

int main()
{
    run();
}

 

#include <stdio.h>

void run(void); // 선언

int main()
{
    run();
}

void run(void) // 정의
{
    printf("hello world");
}

 

3. 함수의 구조

함수의 구조는 이러하다.

반환할자료형 함수이름(전달할 자료형과 변수 이름)
{
    ...
}

 

반환할자료형[EX:int] 함수이름[EX:run](전달할 자료형과 변수 이름[EX:int a]);

int main()
{
    ...
}

int run(int a)
{
    ...
}

 

4. 함수의 형태

void run(void) // void run()과 같다. 반환 : X, 인자 : X
{
    ...
}

int run(void) // int run()과 같다. 반환 : int값, 인자 : X
{
    ...
}

void run(int num) // 반환 : X, 인자 : int값
{
    ...
}

int run(int num) // 반환 : int값, 인자 : int값
{
    ...
}

 

5. 재귀함수

재귀함수는 함수가 자기자신을 계속 호출하여 조건에 만족하면 return하는 함수를 말한다.

#include <stdio.h>

int run(int i, int sum); // 함수선언

int main()
{
    int i;
    printf("입력 : ");
    scanf("%d", &i);
    printf("%d", run(i, 1));
}

int run(int i, int sum) // 함수정의
{
    if(i == 0) // i가 0이면
    {
        return sum; // sum을 return해라
    }
    sum *= i; // i X sum
    run(--i, sum); // run호출
}