C 언어 학습 로그 - 주간 리뷰 (Week 3)
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
C 언어 기초를 학습하는 성인 학습자 (중급 수준)
핵심 요약
sizeof
연산자를 사용하여 변수/데이터 타입의 메모리 크기를 확인할 수 있음unsigned
/signed
타입 지정자와#define
전처리 지시문을 통해 상수와 변수의 차이를 이해해야 함- 오버플로우(Overflow)와 언더플로우(Underflow)는 데이터 타입의 범위를 초과했을 때 발생하며, 적절한 타입 선택이 필수적
섹션별 세부 요약
1. 데이터 타입 및 메모리 크기
short
: 2바이트, 범위 -32768 ~ 32767int
: 4바이트, 범위 -2,147,483,648 ~ 2,147,483,647long
/long long
: 4바이트/8바이트, 대규모 정수 처리 가능unsigned
타입은 비음수만 저장하며,signed
타입은 부호 비트를 사용함
2. 상수 및 전처리 지시문
#define
은 전처리 지시문으로 컴파일 전에 대체되며, 메모리 공간을 차지하지 않음#define EXCHANGE_RATE 1120;
과 같이 상수 정의를 통해 코드 유지보수를 용이하게 함
3. 오버플로우/언더플로우
- 오버플로우: 계산 결과가 데이터 타입의 범위를 초과해
inf
로 표시됨 - 언더플로우: 매우 작은 수가 표현 불가능해
0
으로 근사됨 - 예방 방법: 필요한 경우
long long
등 더 큰 타입을 사용해야 함
4. 고정소수점 vs 부동소수점
- 고정소수점: 단순하지만 대규모 수 처리에 한계
- 부동소수점 (
float
,double
): 과학/공학 계산에 적합하며, 소수점 자릿수 정확도 중요
5. ASCII 코드 및 특수 문자
\0
(Null Terminator): 문자열 종료 표시\n
,\t
등: 문자열 내에서 줄 바꿈, 탭 등 제어 기능 수행char
타입은 ASCII 코드를 기반으로 문자 저장
결론
- 메모리 효율성과 데이터 정확성을 위해
int
대신long
/long long
사용을 고려해야 함 #define
은 상수 정의에 유리하지만, 변수와는 메모리 처리 방식이 다름- 오버플로우 예방을 위해 타입 범위를 반드시 확인해야 하며,
sizeof
를 활용한 메모리 분석이 필수적