일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- docker
- c언어
- Houdini
- Flutter
- Algorithm
- jupyter
- c# 추상 클래스
- C++
- Python
- gitlab
- c# 윈폼
- 깃
- c# winform
- jupyter lab
- 유니티
- 구조체
- github
- vim
- git
- C# delegate
- 포인터
- dart 언어
- HTML
- C언어 포인터
- 도커
- 플러터
- 다트 언어
- c#
- Data Structure
- Unity
Archives
- Today
- Total
nomad-programmer
[Programming/C] 자료형 범위의 값 본문
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)을 앞에 붙일 수 있다.
'Programming > C' 카테고리의 다른 글
[Programming/C] 개발 도구들 (0) | 2020.06.21 |
---|---|
[Programming/C] 자동화된 테스트 (0) | 2020.06.21 |
[Programming/C] static 키워드 (0) | 2020.06.21 |
[Programming/C] Mutex (상호배제, 상호배타) (0) | 2020.06.21 |
[Programming/C] 스레드 (Thread) (0) | 2020.06.20 |
Comments