Post

C 언어(8) 함수

C 언어(8) 함수

함수

함수란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합입니다.

함수 정의

위에 함수 선언만으로는 함수를 사용할 수 없습니다.
왜나하면 아직 함수의 기능이 구현되지 않았기 때문입니다.

함수의 기능을 구현하기 위해서는 함수를 정의해야 합니다.

함수는 다음과 같이 [반환 타입 함수 이름(매개 변수)]
{
명령어
}
선언과 정의를 할 수 있습니다.

1
2
3
4
5
int sum(int value1, int value2)
{
    int result = value1 + value2; 
    return result; // value1 과 value2를 더한 값을 반환
}

함수 호출

함수는 다음과 같이 [함수 이름(전달할 매개변수)] 로 호출할 수 있습니다.

1
2
int result = sum(5, 10); // value1 로 5, value2 로 10을 건네주어 15의 값을 반환받음
printf("%d", result);

15

함수 선언

C 언어에서 컴파일러에게 함수의 존재를 알리기 위해서함수 선언을 해줘야 합니다.

함수는 다음과 같이 [반환 타입 함수 이름(매개 변수)] 으로 선언할 수 있습니다.

1
int sum(int value1, int value2);

다음과 같은 코드는 컴파일 에러를 발생시킵니다.

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>

int main()
{
    print(); // error
    return 0;
}

void print()   
{
    printf("Hello, world!\n");
}

함수의 반환 타입으로 void아무것도 반환하지 않는다. 라는 뜻입니다.

그 이유는 main 함수에서는 print함수를 호출하려 하지만
C 언어의 컴파일러는 위에서 아래로 코드를 해석하기 때문에
print 함수에 대한 정보가 없기 때문입니다.
때문에 다음과 같이 print 함수 선언을 print함수를 호출하는 함수보다 먼저 선언 해야합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>

void print();

int main()
{
    print();  // ok
    return 0;
}

void print()   
{
    printf("Hello, world!\n");
}
This post is licensed under CC BY 4.0 by the author.