본문으로 건너뛰기

함수

함수의 개요

함수의 개념

  • 특정한 작업을 처리하기 위한 코드들의 집합

    • int sum(int n); : 1 ~ n까지의 합을 반환
    • int average(int n); : n개 데이터에 대한 평균을 반환
    • void print_menu(); : 프로그램 실행을 위한 메뉴 출력
    • void factorial(int n); : n의 팩토리얼 출력

함수의 종류

  • 라이브러리 함수
    • C프로그램에서 기본적으로 제공되는 함수
  • 사용자 정의 함수
    • 사용자가 필요에 의하여 정의하는 함수



함수의 활용

사용자 정의 함수

함수의 형식

  • 반환되는 데이터 타입, 함수 이름, 매개변수, 반환 값 등을 명시

  • main 함수 안에서 호출되며, 사용자 정의 함수는 미리 정의되어야 함

  • //n수 만큼 n을 출력하는 함수

    void print_n(int n) {
    for (int i = 1; i <= n; i++) {
    printf("%d ", i);
    }
    printf("\n");
    }
    • void : 반환되는 데이터 타입, 만일 int 등의 반환 타입이 있을 경우 return.. 의 형식으로 값을 반환
    • print_n : 함수 이름
    • int n : 매개변수, 함수 호출 시 전달되는 값

재귀 함수

  • 함수 자신을 반복하여 호출하여 실행하는 함수


라이브러리 함수

  • 미리 제공되어 컴파일러가 인식할 수 있는 함수
  • 헤더파일에 사용할 함수가 포함되어 있는 헤더파일을 선언해야 함

#include <stdio.h>

  • 문자열 변환

    • atof : 문자열을 double 형으로 변환함
    • atoi : 문자열을 정수형으로 변환함
    • atol : 문자열을 long 형 정수로 변환함
    • strtod : 문자열을 double 형으로 변환함
    • strtol : 문자열을 long 형 정수로 변환함
    • strtoul : 문자열을 unsigned long 형 정수로 변환함
  • 난수 생성 함수

    • rand : 난수 생성 함수
    • srand : 난수 생성을 위한 초기값을 설정함
  • 동적 할당 관련 함수

    • calloc : 메모리에서 배열을 위한 공간을 할당함
    • free : 메모리에서 공간을 사용 해제함
    • malloc : 메모리에서 공간을 할당함
    • realloc : 메모리에서 공간을 재할당 함
  • math.h

    분류함수설명
    삼각함수double sin(double x)사인 값 계산
    double cos(double x)코사인 값 계산
    double tan(double x)탄젠트 값 계산
    지수함수double exp(double x)e^x
    double log(double x)로그 값 계산
    double log10(double x)10을 밑으로 하는 로그 값 계산
    기타함수double ceil(double x)x보다 작지 않은 가장 작은 정수
    double floor(double x)x보다 크지 않은 가장 큰 정수
    double fabs(double x)실수 x의 절대값
    int abs(int x)정수 x의 절대값
    double pow(double x, double y)x^y
    double sqrt(double x)x의 제곱근