학습목표
1. 함수의 개념과 중요성을 이해할 수 있다.
2. 함수의 선언, 정의, 호출, 자료 전달 방법에 대해 이해할 수 있따.
3. 표준함수에 대한 헤더 파일을 사용할 수 있다.
4. 변수의 유효번위와 기억 클래스를 이해할 수 있다.
주요 용어
함수, 표준함수, 사용자 정의 함수, 함수 호출, 매개변수, return, 값에의한 자료 전달, call by value, 참조에 의한 자료 전달, call by reference, 지역/전역 변수, 기억 클래스, 자동/정적/외부/레지스터 변수
5.1 함수의 개념
함수란 수학에서의 함수와 같이 특정한 작업(기능)을 수행하도록 설계된 독립적인 프로그램이라고 정의할 수 있다.
c프로그램은 이런 함수로 구성되어 있고, 그 함수들이 정해진 실행 순서에 따라 실행되어 프로그램의 기능을 수행한다.
C 프로그램은 함수들로 구성
- 전체의 실행 내용을 몇 개의 모듈(module)로 분류
- 각각의 모듈에 해당하는 내용을 함수로 작성
- 실행순서에 따라 그 함수들을 차례로 호출하여 실행
함수의 특성
- 함수들은 서로를 자유로이 호출 가능
- 모든 함수는 서로 독립적
함수의 장점
- 프로그램의 수정이 용이하다.
- 함수 재사용으로 코드 중복을 최소화한다.
- 프로그램의 기능을 한 눈에 파악할 수 있게 해줌으로써 유지관리가 쉽다.
함수는 크게 두 종류가 있다. c언어 자체에서 제공하는 printf(), scanf() 와 같은 표준함수, 사용자가 정의하여 사용하는 사용자 정의 함수
5.2 표준함수
- 표준함수의 원형은 헤더파일에 정의
- 표준함수의 실체는 라이브러리 파일에 수록
- 표준함수를 사용하려면 원형이 선언되어 있는 헤더파일 #include 시켜 주어야 한다.
표준 함수의 원형 예 |
** C 언어에서의 표준함수 예
//표준함수의 사용예1
#include <stdio.h>
#include <math.h>
void main(){
double x = 12.34;
int i = -5, j = 2;
int a, b, c;
a = ceil(x); // ceil(x) : x 이상의 최소 정숫값
b = floor(x); //floor(x) : x 미만의 최대 정숫값
c = pow(4,j); // pow(x,y): xy 값
printf("abs(-5) = %d \n", abs(i)); // ads(x) : x 의 절댓값
printf("ceil(12.34) = %d \n", a);
printf("cos(10) = %f \n", cos(10)); // cos(x) : x의 cosine 값
printf("exp(2) = %.f \n", exp(j) ); // exp(x) : x 의 지숫값
printf("floor(12.34) = %d \n ", b);
printf("sqrt(2) = %5f \n", sqrt(j));// sqrt(x) : x의 제곱근값
printf("pow(4,2) = %d \n", c); }
//표준함수의 사용예2
#include <stdio.h>
#include <String.h> // 문자열 처리함수(strlen)를 위한 헤더파일
#include <ctype.h> // 문자형태 판별함수(isalpha, isdigit)를 위한 헤더파일
void main(){
int i, alp =0, no =0, et =0;
char s[20];
printf("문자입력 : ");
scanf("%s", s);
for(i=0; i < strlen(s); i++){
//strlen : 문자열 길이를 구하는 함수
if(isalpha(s[i]))
// isalpha : 영문자 여부를 구하는 함수
alp++;
else if(isdigit(s[i]))
// isdigit : 숫자 여부를 구하는 함수
no++;
else
et++; }
printf("알파벳 = %d \n", alp);
printf("숫자 = %d \n", no);
printf("기타 = %d \n", et); }
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
함수의 호출 function (0) | 2020.05.31 |
---|---|
사용자 정의 함수 (0) | 2020.05.30 |
for문, while문, do~while문 차이점 (0) | 2020.05.28 |
제5강 for문, while문, do~while문, break문, continue문 (0) | 2020.05.27 |
제5강 switch문, goto문 예시 (0) | 2020.05.26 |