Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-05 01:06
관리 메뉴

nomad-programmer

[Programming/C] 자료형 범위의 값 본문

Programming/C

[Programming/C] 자료형 범위의 값

scii 2020. 6. 21. 02:22

sizeof 연산자는 데이터가 얼마나 많은 메모리 공간을 차지하는지 알려준다. 그런데 어떤 "범위의 값"을 가질 수 있는지 알고 싶으면 어떻게 해야 할까? 
예를 들어 컴퓨터에서 int형이 4바이트를 차지한다고 알고 있을 때, 저장할 수 있는 가장 큰 값은 무엇일까? 아니면 가장 작은 음의 값은?
차지하는 바이트 수로 크기를 계산할 수 있다만 어려울 수 있다.

대신 "limits.h" 헤더 파일에 정의된 매크로를 사용할 수 있다. long형 변수가 저장할 수 있는 가장 큰 값은 LONG_MAX 매크로에 정의되어 있고 short형 변수가 저장할 수 있는 가장 작은 값은 SHRT_MIN을 사용하면 알 수 있다.

다음 코드는 int와 short가 저장할 수 있는 범위를 보여준다.

#include <stdio.h>
#include <limits.h>

int main(int argc, char *argv[]) {
    printf("현재 컴퓨터에서 int형은 %lu바이트를 차지한다.\n", sizeof(int));
    printf("int형은 %i에서 %i까지 저장 가능.\n", INT_MIN, INT_MAX);
    printf("short형은 %i에서 %i까지 저장 가능.\n", SHRT_MIN, SHRT_MAX);

    return 0;
}

// 결과
/*

현재 컴퓨터에서 int형은 4바이트를 차지한다.
int형은 -2147483648에서 2147483647까지 저장 가능.
short형은 -32768에서 32767까지 저장 가능.

*/

매크로 이름은 INT(int), SHRT(short), LONG(long), CHAR(char), FLT(float), DBL(double) 과 같이 데이터형으로 시작한다. 그리고 _MAX(가장 큰 양수)나 _MIN(가장 작은 음수)을 추가하면 된다.

더 구체적인 형에 대한 값을 보려면 U(unsigned), S(signed), L(long)을 앞에 붙일 수 있다.

Comments