반응형
SMALL

학습목표

1. 함수의 개념과 중요성을 이해할 수 있다.

2. 함수의 선언, 정의, 호출, 자료 전달 방법에 대해 이해할 수 있따.

3. 표준함수에 대한 헤더 파일을 사용할 수 있다.

4. 변수의 유효번위와 기억 클래스를 이해할 수 있다.

 

주요 용어

함수, 표준함수, 사용자 정의 함수, 함수 호출, 매개변수, return, 값에의한 자료 전달, call by value, 참조에 의한 자료 전달, call by reference, 지역/전역 변수, 기억 클래스, 자동/정적/외부/레지스터 변수

 

 

5.1 함수의 개념

함수란 수학에서의 함수와 같이 특정한 작업(기능)을 수행하도록 설계된 독립적인 프로그램이라고 정의할 수 있다.

c프로그램은 이런 함수로 구성되어 있고, 그 함수들이 정해진 실행 순서에 따라 실행되어 프로그램의 기능을 수행한다.

 

C 프로그램은 함수들로 구성

- 전체의 실행 내용을 몇 개의 모듈(module)로 분류

- 각각의 모듈에 해당하는 내용을 함수로 작성

- 실행순서에 따라 그 함수들을 차례로 호출하여 실행

 

함수의 특성

- 함수들은 서로를 자유로이 호출 가능

- 모든 함수는 서로 독립적

 

함수의 장점

- 프로그램의 수정이 용이하다.

- 함수 재사용으로 코드 중복을 최소화한다.

- 프로그램의 기능을 한 눈에 파악할 수 있게 해줌으로써 유지관리가 쉽다.

함수는 크게 두 종류가 있다. c언어 자체에서 제공하는 printf(), scanf() 와 같은 표준함수, 사용자가 정의하여 사용하는 사용자 정의 함수

 

 

5.2 표준함수

- 표준함수의 원형은 헤더파일에 정의

- 표준함수의 실체는 라이브러리 파일에 수록

- 표준함수를 사용하려면 원형이 선언되어 있는 헤더파일 #include 시켜 주어야 한다.

 

표준 함수의 원형 예
>> printf(), scanf() 함수의 원형
int printf(const char *format, ... );
int scanf(const char *format, ... );

헤더파일에 정의되어 있음 (stdio.h)
표준함수를 사용하려면 stdio.h를 #include

-----------------------------
>> sin(), cos() 함수의 원형
double sin(double x);
double cos(double x);
헤더 파일에 정의 되어 있음 (math.h)
표준함수를 사용하려면 math.h 를 #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); } 

 

 

 

 

반응형
LIST

+ Recent posts