6.1 함수란??
함수란 특정 작업을 수행하는 명령어들의 모음을 뜻합니다. 우리가 짠 코드중 자주 쓰이는 코드를 박스안에 집어넣고 그 박스를 호출하면 해당 코드가 작동된다고 생각하시면 됩니다.
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에서 다뤄보도록 하겠습니다.