본문 바로가기
공부정리 및 기록/[C언어] 프로그래밍

6. 함수와 기억 클래스(1)

by 9월스튜디오 2020. 5. 28.

 

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));

 

 

 

 

 

댓글