Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++ (limits.h) 헤더 파일 완벽 가이드


climits(limits.h)란 무엇인가?

C 언어에서는 "limits.h" 헤더 파일이 사용되고, C++에서는 <climits> 헤더 파일이 사용됩니다. 두 헤더 파일에는 여러 가지 매크로가 정의되어 있으며, 이러한 한계값(limit)은 해당 자료형의 변수가 그 범위를 초과하는 값을 저장할 수 없음을 의미합니다.

주요 매크로 목록

"limits.h" 또는 <climits> 헤더 파일에 정의된 대표적인 매크로는 다음과 같습니다.

CHAR_BITchar 타입의 비트 수
CHAR_MINchar의 최솟값
CHAR_MAXchar의 최댓값
INT_MINint의 최솟값
INT_MAXint의 최댓값
SHRT_MINshort int의 최솟값
SHRT_MAXshort int의 최댓값
LONG_MINlong int의 최솟값
LONG_MAXlong int의 최댓값
ULONG_MAXunsigned long의 최댓값

C++ 예제 코드

다음은 C++에서 <climits> 헤더 파일을 사용하는 예제입니다.

#include<iostream>
#include<bits/stdc++.h>
#include<climits>
using namespace std;
int main() {
    int x = 28;
    int a = CHAR_BIT*sizeof(x);
    stack<bool> s;
    cout << "The number is : " << x << endl;
    for (int i=1; i<=a; i++) {
        s.push(x%2);
        x = x/2;
    }
    cout << "The number of bits in a byte : " << CHAR_BIT << endl;
    for (int i=1; i<=a; i++) {
        cout << s.top();
        s.pop();
        if (i % CHAR_BIT == 0)
        cout << " ";
    }
    cout << "\n\nThe minimum value of short int :" << SHRT_MIN;
    return 0;
}

실행 결과

The number is : 28
The number of bits in a byte : 8
00000000 00000000 00000000 00011100

The minimum value of short int :-32768

코드 설명

위 프로그램에서는 <climits>의 두 가지 매크로를 사용했습니다. 하나는 CHAR_BIT이고, 다른 하나는 SHRT_MIN입니다. CHAR_BIT는 char 타입이 몇 개의 비트로 구성되어 있는지를 나타내며(일반적으로 8), SHRT_MIN은 short int가 가질 수 있는 최솟값인 -32768을 나타냅니다.

int x = 28;
int a = CHAR_BIT*sizeof(x);
….
cout << "\n\nThe minimum value of short int :" << SHRT_MIN;

여기서 CHAR_BIT * sizeof(x)는 int형 변수 x의 전체 비트 수(8비트 × 4바이트 = 32비트)를 계산합니다. 이 값을 이용해 스택에 10진수 28을 2진수 비트 단위로 저장한 뒤, 8비트씩 구분하여 출력함으로써 2진수 변환 결과를 보기 쉽게 표현하고 있습니다.