AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

C 언어 학습 로그 - 주간 리뷰 (Week 3)

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

C 언어 기초를 학습하는 성인 학습자 (중급 수준)

핵심 요약

  • sizeof 연산자를 사용하여 변수/데이터 타입의 메모리 크기를 확인할 수 있음
  • unsigned/signed 타입 지정자와 #define 전처리 지시문을 통해 상수와 변수의 차이를 이해해야 함
  • 오버플로우(Overflow)언더플로우(Underflow)는 데이터 타입의 범위를 초과했을 때 발생하며, 적절한 타입 선택이 필수적

섹션별 세부 요약

1. 데이터 타입 및 메모리 크기

  • short: 2바이트, 범위 -32768 ~ 32767
  • int: 4바이트, 범위 -2,147,483,648 ~ 2,147,483,647
  • long/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를 활용한 메모리 분석이 필수적