[C 프로그래밍] 함수
함수
- 함수란 특정한 작업(기능)을 수행하도록 설계된 독립적인 프로그램
-
이러한 함수들이 정해진 순서에 따라 실행됨으로써 프로그램의 기능을 수행
- C 프로그램은 함수들로 구성
- 전체의 실행 내용을 몇 개의 모듈(module)로 분류
- 각각의 모듈에 해당하는 내용을 함수로 작성
- 실행순서에 따라 그 함수들을 차례로 호출하여 실행
- 전체의 실행 내용을 몇 개의 모듈(module)로 분류
함수의 특성 및 장점
- 함수들은 서로를 자유로이 호출 가능
-
모든 함수는 서로 독립적
- 프로그램의 수정이 용이
- 함수 재사용으로 코드 중복을 최소화
- 프로그램의 기능을 한 눈에 파악할 수 있게 해줌으로써 유지관리가 쉽다
표준 함수
- C언어 자체에서 제공하는 함수
- 표준함수의 원형은 헤더파일에 정의
- 표준함수의 실체는 라이브러리 파일에 수록
-
표준함수를 사용하려면 원형이 선언되어있는 헤더파일을 #include 시켜 주어야 한다
- C 언어에서의 표준함수 예
헤더파일 | 선언된 함수 | 함수 예 |
studio.h | 입출력 함수 | printf(), scanf(), getchar(), putchar() ... |
파일 관련 함수 | fopen(), fclose(), fprintf() ... | |
conio.h | 콘솔 입출력함수 | putch(), cputs(), cprintf()(), getch(), getche(), cscanf() ... |
string.h | 문자열처리 함수 | strcat(), ctrcmp(), strcpy(), strlen(), strncat(), ctrncpy() ... |
math.h | 수학 함수 | sqrt(), sin(), cos(), tan(), log(), exp(), pow(), abs() ... |
ctype.h | 문자형태 판별함수 | ㅑisalpha(), isdigit(), islower() ... |
문자변환 함수 | tolower(), toupper() | |
stdlib.h | 수치변환 함수 | atoi(), itoa() |
난수관련 함수 | rand(), srand() | |
정렬/검색 함수 | qsort(), lfind() |
사용자 정의 함수
- C 프로그램에서의 함수
- main() 함수 안에 표준함수를 사용하는 형태
- 그러나 동을 블록 내의 프로그램 길이가 길어지면 전체 프로그램은 복잡해지고 이해하기가 어려워짐
- 따라 전체 프로그램을 짧은 길이의 단위 프로그램으로 나누어 정의함으로써 프로그램의 작성과 이해를 쉽게 할 필요가 있음
- main() 함수 안에 표준함수를 사용하는 형태
사용자 정의 함수 - 함수 정의 구조
반환자료형 함수명 (자료형 매개변수1, 자료형 매개변수2 ...){
함수 몸체
}
- 반환 자료형
- 함수에서 계산된 결과값을 호출한 함수에 되돌려 줄 때의 자료형
- 생략이 가능하며 생략할 경우 자료형은 int형으로 간주
- 반환값이 없는 함수인 경우는 void형으로 선언
- 함수에서 계산된 결과값을 호출한 함수에 되돌려 줄 때의 자료형
- 함수명
- 변수명을 정하는 규칙과 동일한 방식으로 함수명을 정한다
- 변수명을 정하는 규칙과 동일한 방식으로 함수명을 정한다
- 자료형과 매개변수
- 자료형은 매개변수의 자료형을 나타냄
- 매개변수가 여려 개을 경우에는 콤마(,)로 구분
- 매개변수가 없으면 void형으로 사용
- 자료형은 매개변수의 자료형을 나타냄