1. 함수의 개념
1) 함수
- 특정한 작업이나 기능을 수행하도록 설계된 독립적인 프로그램
- 이러한 함수들이 정해진 순서에 따라 실행됨으로써 프로그램의 기능 수행
- C프로그램은 함수들로 구성, 전체의 샐행내용을 몇개의 모듈로 분류
- 각각의 모듈에 해당하는 내용을 함수로 작성
- 실행순서에 따라 그 함수들을 차례로 호출하여 실행.
2) 함수의 특성
- 함수들은 서로 자유로이 호출 가능
- 모든 함수는 독립적
3) 장점
- 수정이 용이
- 재사용으로 코드 중복 최소화
- 프로그램의 기능 파악이 쉬워 유지관리가 쉬움.
4) 단위 프로그램을 하나의 함수에 기술한 경우
- 함수의 길이가 커짐
- 가독성 문제
- 수정이 어려움
- 일부분 재호출이 힘듬.
----> 기능별 독립된 단위 함수로 구성한 경우 효율적
2. 표준 함수
1) C언어에서의 함수
(1) 표준함수
- C언어 자체 제공
- 원형은 헤더파일에 정의
- 실체는 라이브러리 파일에 수록
- 표준함수를 사용하려면 원형이 선언되어 있는
헤더파일을 #include 시켜 주어야 함.
* 표준함수 원형 예
[ printf() ] : int printf(const char *format, …)
[ scanf() ] : int scanf(const char *format,…)
- 헤더파일에 정의되어 있음(stdio.h)
- 표준함수를 사용하려면 stdio.h를 #include
[ sin() ] : double sin(double x );
[ cos()P ] : double cos(double x);
- 헤더파일에 정의되어 있음(math.h)
- 표준함수를 사용하려면 math.h를 #include
3. 사용자 정의 함수
1) 사용자 정의 함수
(1)정의
- main() 함수 안에 표준함수를 사용하는 형태
- 동일 블록 내의 프로그램 길이가 길어지면 전체 프로그램은 복잡해지고 이해가 어려워짐.
- 전체프로그램을 간소한 단위 프로그램으로 나누어 정의하여 프로그램의 작성과 이해를 쉽게 해야함.
2) 사용자 정의 함수 구조
반환자료형함수명(자료형매개변수1,자료형매개변수2, ....)
{
함수몸체
}
→예시:
intsum(int a,intb)
{
int d;
d = a+b;
return(d);
}
① 함수 헤더
①-1. 반환자료형
- 함수에서 계산된 결과값을 호출한 함수에 되돌려 줄 떄의 자료형
- 사용될 수 있는 자료형은 C언어에서 사용가능한 모든 자료형
- 생략가능, 생략할 경우 int형으로 간주
- 반환값이 없는 함수인 경우는 void형으로 선언
①-2. 함수형, 매개변수
- 함수명 : 변수명을 정하는 규칙과 동일한 방식으로 함수를 이해하는데 도움을 줄 의미있는 이름으로 정함.
- 자료형과 매개변수 : 자료형은 매개변수의 자료형이며 매개변수는 해당함수의 자료형을 나타내고,
매개변수는 호출함수와 피호출 사이에 자료를 주고받으며 해당 함수 내에세 변수처럼 사용된다.
매개변수가 여러 개일 때는 콤마로 구분하며 매개변수가 없을 떄는 void형으로 사용함.
② 함수 몸체
- 함수가 하는 일을 정의
- 중괄호를 이용하여 함수의 시작과 끝 표시.
- C언어의 기본구조와 동일.
- 반환자료형이 있는 경우 return값 명시
- 반환자료형이 void일 경우 return값 생략.
- 반환자료형에서 void는 반드시 명시 (생략시 int로 처리)
- 매개변수 (void)와 ()는 동일한 의미
3) 사용
- 사용하기 위해서는, 함수의 원형선언 / 호출 / 정의로 구성
(1) 함수의 원형 선언
- 변수와 같이 사용 전 미리 선언
- 일반적으로 main() 함수 이전에 한다.
- 원형선언은 함수정의 부분의 헤더부분에 세미콜론만 추가하면 됨.
- 함수와 관련된 3가지 성질을 선언 (함수의 반환형, 매개변수의 개수, 매개변수의 자료형)
- 피호출 함수가 main()함수 뒤에 선언된 경우엔 반드시 필요
- 피호출 함수가 main()함수 이전에 선언된 경우엔 필요 없음.
(2) 함수의 호출
- 함수는 일종의 부 프로그램이라 함수의 호출이 필요.
- main부분부터 순차적으로 실행되다가도 호출함수 부분에서 호출 발생이 일어나,
호출당하는 사용자 정의함수로 옮겨갔따가 순차적으로 끝내고 다시 복귀된 main 부분을 순차적으로 실행해나감.
* 매개변수
- 실 매개변수 : 함수를 호출하는 함수 (호출함수)
-형식 매개변수 : 호출당하는 함수 (피호출함수)
- 두 사이에는 자료형과 변수의 개수가 일치해야함.
- 자료형이 일치하지 않을 경우 형 변환 발생
- 변수의 개수가 일치하지 않으면 컴파일 에러 발생.
(3)결과값 반환 (return 문)
* 형식 : return(수식);
return수식;
* 기능 : 함수를 끝내고 제어와 함수 수행결과를 호출 함수로 넘긴다.
* 사용예 : return(sum(10,20));
'공부정리 및 기록 > [C언어] 프로그래밍' 카테고리의 다른 글
[C언어] 배열 선언 & 값 대입 & 포인터 & 짝수 홀수 합 구하는 프로그램 만들기 문제 (0) | 2020.07.13 |
---|---|
7. 함수와 기억 클래스(2) (0) | 2020.05.28 |
5. 선택 제어문과 반복 제어문 (0) | 2020.05.28 |
3. 입·출력 함수와 연산자(2) (0) | 2020.05.28 |
3. 입·출력 함수와 연산자(1) (0) | 2020.05.28 |
댓글