c 언어/c 표준 라이브러리(Standard C Library)

C 표준 라이브러리 `math.h` 개요 및 기본 수학 연산

임베디드 친구 2025. 2. 19. 09:21
728x90
반응형

C 언어에서 수학 연산을 수행할 때 자주 사용되는 표준 라이브러리 중 하나가 math.h입니다. 이 라이브러리는 다양한 수학 함수들을 제공하며, 이를 활용하면 복잡한 계산을 보다 효율적으로 수행할 수 있습니다.

이번 글에서는 math.h 라이브러리의 개요와 함께 기본적인 수학 연산을 수행하는 함수들인 sqrt, pow, exp, log, log10에 대해 설명하고, 예제 코드와 함께 각각의 함수가 어떻게 동작하는지 살펴보겠습니다.

1. math.h 개요

math.h는 수학 연산을 위한 함수들을 제공하는 C 표준 라이브러리입니다. 해당 라이브러리를 사용하려면 #include <math.h>를 소스 코드에 포함해야 합니다.

또한, math.h의 함수들을 사용할 때 일부 함수는 double을 반환하므로, 컴파일할 때 -lm 옵션을 추가해야 하는 경우가 있습니다. 예를 들어, GCC를 사용할 경우 다음과 같이 컴파일해야 합니다.

gcc program.c -o program -lm

이제 math.h의 기본적인 수학 함수들을 살펴보겠습니다.


2. 제곱근 계산: sqrt

함수 원형

double sqrt(double x);

sqrt 함수는 주어진 값의 제곱근을 반환합니다. 만약 x가 음수라면 결과는 정의되지 않으며, 일반적으로 NaN(Not a Number)을 반환합니다.

예제 코드

#include <stdio.h>
#include <math.h>

int main() {
    double num = 25.0;
    double result = sqrt(num);
    printf("sqrt(%.2f) = %.2f\n", num, result);
    return 0;
}

실행 결과

sqrt(25.00) = 5.00

3. 거듭제곱 계산: pow

함수 원형

double pow(double base, double exponent);

pow 함수는 주어진 base 값을 exponent 만큼 거듭제곱한 값을 반환합니다.

예제 코드

#include <stdio.h>
#include <math.h>

int main() {
    double base = 2.0, exponent = 3.0;
    double result = pow(base, exponent);
    printf("pow(%.2f, %.2f) = %.2f\n", base, exponent, result);
    return 0;
}

실행 결과

pow(2.00, 3.00) = 8.00

4. 지수 함수 계산: exp

함수 원형

double exp(double x);

exp 함수는 자연로그의 밑인 ex 제곱을 반환합니다. 즉, 수학적으로 e^x를 계산합니다.

예제 코드

#include <stdio.h>
#include <math.h>

int main() {
    double x = 2.0;
    double result = exp(x);
    printf("exp(%.2f) = %.2f\n", x, result);
    return 0;
}

실행 결과

exp(2.00) = 7.39

5. 자연로그 계산: log

함수 원형

double log(double x);

log 함수는 주어진 x자연로그(ln, 밑이 e인 로그) 값을 반환합니다. x가 0 이하일 경우 정의되지 않으며, 일반적으로 NaN 또는 오류를 반환합니다.

예제 코드

#include <stdio.h>
#include <math.h>

int main() {
    double x = 10.0;
    double result = log(x);
    printf("log(%.2f) = %.2f\n", x, result);
    return 0;
}

실행 결과

log(10.00) = 2.30

6. 상용로그 계산: log10

함수 원형

double log10(double x);

log10 함수는 주어진 x상용로그(밑이 10인 로그) 값을 반환합니다.

예제 코드

#include <stdio.h>
#include <math.h>

int main() {
    double x = 100.0;
    double result = log10(x);
    printf("log10(%.2f) = %.2f\n", x, result);
    return 0;
}

실행 결과

log10(100.00) = 2.00

7. 정리 및 마무리

이번 글에서는 math.h 라이브러리의 기본적인 수학 연산 함수인 sqrt, pow, exp, log, log10에 대해 살펴보았습니다.

각 함수는 수학적인 연산을 보다 쉽게 수행할 수 있도록 도와주며, 실제 프로그램에서 다양한 계산을 수행할 때 유용하게 사용됩니다.

반응형