일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Unity
- 도커
- Houdini
- vim
- 깃
- 유니티
- jupyter
- Data Structure
- jupyter lab
- gitlab
- docker
- git
- dart 언어
- c# winform
- HTML
- github
- c# 추상 클래스
- c# 윈폼
- 구조체
- 다트 언어
- C# delegate
- Python
- Flutter
- c#
- Algorithm
- 플러터
- C언어 포인터
- C++
- c언어
- 포인터
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