표준 함수

정의

  • C 언어 자체에서 제공하는 함수들
  • 프로그램 작성에 필요한 기본 기능을 제공한다.
  • 표준 라이브러리 형태로 제공된다.
  • 사용하기 위해 표준함수의 원형이 선언되어 있는 헤더파일을 미리 포함(#include)해야 한다.

주요 표준함수

헤더파일 선언된 함수 함수 예
stdio.h 입출력 함수 printf(), scanf(), getchar(), putchar() 등
stdio.h 파일 관련 함수 fopen(), fclose(), fprintf() 등
string.h 문자열 처리 함수 strcmp(), strlen(), strcpy(), strcat() 등
math.h 수학 함수 sqrt(), sin(), cos(), tan(), log(), pow() 등
ctype.h 문자 형태 판별 isalpha(), isdigit(), islower(), isupper() 등
ctype.h 문자 변환 함수 tolower(), toupper() 등
stdlib.h 수치 변환 함수 atoi(), strtol() 등
stdlib.h 난수 관련 함수 rand(), srand() 등
stdlib.h 메모리 관련 함수 malloc(), free(), qsort() 등

사용 예

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main() {
    double x = 12.34;
    int i = -5, j = 2;
    int a, b, c;
    a = (int)ceil(x);
    b = (int)floor(x);
    c = (int)pow(4, j);
    printf("abs(-5) = %d\n", abs(i));
    printf("ceil(12.34) = %d\n", a);
    printf("floor(12.34) = %d\n", b);
    printf("cos(10) = %f\n", cos(10));
    printf("exp(2) = %f\n", exp(j));
    printf("sqrt(2) = %f\n", sqrt(j));
    printf("pow(4, 2) = %d\n", c);
    return EXIT_SUCCESS;
}

사용자 정의 함수

정의

  • 사용자가 필요에 따라 특정 기능을 수행하도록 정의한 함수

함수 정의 형식

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
return_type function_name(type_a param1, type_b param2 ...) {   // ==> 함수 헤더
    type1 local_var1;                                           // ==> 함수 몸체(이하)
    type2 local_var2;                                           // 
    ...                                                         // 
    statement1;                                                 // 
    statement2;                                                 // 
    ...                                                         // 
    return expr_return;                                         // 
}

// return_type : 반환 자료형 (expr_return 의 자료형)
// function_name : 함수명  
// param1, param2 : 매개변수  
// type_a, type_b : 매개변수의 타입  
// local_var : 지역변수
// statement : 기능 수행 문장
// expr_return : 반환값

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments