C 프로그래밍/6. 함수

6.1 함수란??

Recircle 2019. 6. 18. 18:34

함수란 특정 작업을 수행하는 명령어들의 모음을 뜻합니다. 우리가 짠 코드중 자주 쓰이는 코드를 박스안에 집어넣고 그 박스를 호출하면 해당 코드가 작동된다고 생각하시면 됩니다.



1
2
3
4
for(int i = 0 ; i < 30 ; i++)
{
    printf("*");
}
cs

이러한 코드가 프로그램 안의 여러곳에서 사용된다고 치면, 


함수가 없을경우 : 

1
2
3
4
for(int i = 0 ; i < 30 ; i++)
{
    printf("*");
}
cs


1
2
3
4
for(int i = 0 ; i < 30 ; i++)
{
    printf("*");
}
cs


필요할때마다 4줄씩 써내려가야합니다.

이때, 함수를 사용하면,


함수가 있을경우 : 

1
2
3
4
5
6
7
void print_stars()
{
    for(int i = 0 ; i < 30 ; i++)
    {
        printf("*");
    }
}
cs

로 우선 정의해둔 다음에


1
2
print_stars()
 
cs

만 불러오면 위의 코드를 실행하게됩니다.


이러한 기능을 가진 함수의 특징은 다음과 같습니다.

- 함수는 서로 구별되는 이름을 가지고 있다.

- 함수는 특정한 작업을 수행한다.

- 함수는 입력을 받을 수 있고 결과를 반환할 수 있다.



함수의 중요성


함수는 레고의 블록처럼 다른 함수들과 연결되어서 하나의 프로그램을 구상합니다.

우리는 지금까지 main()함수에 모든것을 집어 넣어왔습니다.

코드가 main()함수에 모든것이 짜여져있으면 가독성이 떨어지고 유리 관리가 매우 어려워집니다.


함수의 장점을 나열하자면

- 한번 만들어진 함수는 다른 프로그램에서도 재사용 될 수있다.

- 가독성이 증대된다.

- 유리관리가 쉬워진다.

의 3가지로 나눌수 있습니다.



함수의 종류


함수는 컴파일러에서 제공하기도하고, 프로그래머가 직접 작성해서 사용할 수 있습니다.

컴파일러에서 제공되는 함수를 라이브러리 함수라고합니다.

예를들어서, 

1
printf()
cs

함수가 라이브러리 함수입니다.

이러한 라이브러리함수는 프로그래머가 필요로하는 다양한 기능을 제공하기때문에 보다 쉽게 프로그래밍을 할 수있습니다.

우리가 지금까지 배워온 for, while등 은 모두 라이브러리 함수라고 볼 수 있습니다.



개발자가 직접 만들어서 사용하는 함수를 사용자 정의 함수라고 합니다.

사용자 정의함수는 6.2에서 다뤄보도록 하겠습니다.