본문 바로가기
TIL/C

[C언어] 상수, 변수, 선행처리기

by sun_HY 2024. 3. 21.

상수

 

상수: 항상 고정된 값을 갖는 자료 (프로그램 실행 도중 값 변경 불가

 

정수형 상수

  • 10진 상수: 0~9까지의 숫자 사용 (0으로 시작 불가)
  • 8진 상수: 0~7까지의 숫자 사용. 숫자 앞에 0
  • 16진 상수: 0~9, A~F 사용. 숫자 앞에 0x
  • unsigned형: 부호 없는 상수 표현. 숫자 뒤에 U나 u
  • long형: 큰 길이의 정수. 숫자 뒤에 L이나 l

 

실수형 상수 (부동소수점형 상수): 기본 자료형은 double

  • 지수 형식: 10진수와 e, E 사용 (ex. 7e-2 = 0.07, 4E3 = 4000)
  • float형: 숫자 뒤에 f나 F
  • long double형: 숫자 뒤에 l이나 L

 

문자형 상수

  • single quote(' ')로 묶여 있음
  • 1개의 영문자나 숫자 문자

 

+) escape 문자

  • \a: alert
  • \b: back space
  • \f: form feed (새 페이지)
  • \r: carriage return (커서를 행 시작으로)
  • \n: new line
  • \t: horizontal tab
  • \0: null (ASCII코드가 0)

 

문자열 상수

  • double quote(" ")로 묶여 있음
  • 여러 개의 영문자나 숫자
  • 메모리에 저장될 때 문자열 끝에 null(\0) 저장 (ex. KIM은 4자리 공간)

 

 

변수

 

변수: 프로그램 실행 중 변할 수 있는 값 저장

  • 모든 변수는 정해진 이름과 자료형, 할당된 값을 갖는다.
  • 모든 변수는 사용되기 전에 선언되어야 한다.
  • 변수명은 영문자, _로 시작 (_ 이외의 특수문자 중간에도 사용 불가), 대소문자 구별

 

기억공간에 공간을 확보하기 위해서는 변수 선언이 필요하다

변수 선언을 할 때 앞에 자료형이 필요 (ex. int i)

 

전역 변수: 프로그램이 실행되는 동안 항상 기억공간에 존재 (0으로 자동 초기화)

지역 변수: 함수 호출 시 생성, 함수 종료 시 소멸 (자동 초기화 없음)

 

변수 선언: 변수를 위한 기억공간 할당

변수 초기화: 처음에 어떤 값을 부여하는 것 (초기화가 되었느냐 = 값이 부여되었느냐)

값의 범위 주의하기

short int n1, n2;
n1 = 32767 + 1;		// -32768
n2 = -32768 - 1		// 32767 

 

 

자료형

 

정수 자료형의 표현 범위

short
short int
signed short
signed short int
-32768 ~ 32767 2byte
unsigned short
unsigned short int
0 ~ 65535 2byte
int
signed int
-2,147,483,648 ~ 2,147,483,647 4byte
unsigned
unsigned int
0 ~ 4,294,967,295 (40억~) 4byte
long
long int
signed long
signed long int
-2,147,483,648 ~ 2,147,483,647 (20억) 4byte
unsigned long
unsigned long int
0 ~ 4,294,967,295 4byte
long long
long long int
signed long long int
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (900경) 8byte
unsigned long long
unsigned long long int
0 ~ 18446744073709551615 8byte

 

 

signed: 부호 있는 정수

다른 키워드와 같이 사용할 때 int 생략 가능

 

IEEE float형 부동 소수점 방식

32비트: 부호(1) + 지수부(8) + 가수부(23)

 

IEEE double형 부동 소수점 방식

64비트: 부호(1) + 지수부(11) + 가수부(52)

 

열거형 (자주 쓰이지는 않음)

  • 숫자 대신 단어 사용 > 효율적인 프로그래밍 가능
  • 디폴트값: 처음 것은 0, 이후 1씩 증가하는 형태
    • 처음 값을 정의하면 그 다음은 1씩 자동으로 증가함

 

 

선행처리기

 

선행처리기: 컴파일 명령을 내렸을 때 컴파일에 앞서 프로그램 앞에 선언된 지시자 먼저 처리

  • 끝에 세미콜론 붙이지 않는다

 

종류

  • #include: 파일 포함
  • #define: 매크로 정의
  • #if, #else, #elif, #endif: 조건부 컴파일

 

표준 헤더 파일 종류

  • ctype.h: 문자 검사
  • math.h: 수학 함수
  • stdlib.h: 문자열 변환, 기억공간 할당
  • stdio.h: 표준입출력함수
  • string.h: 문자열 관련
  • time.h: 시간 관련

 

매크로 함수의 장점

  • 전달 인자 자료형 명시 필요 없음
  • 단순 치환 방식 → 빠른 속도 가능
728x90

'TIL > C' 카테고리의 다른 글

[C언어] 표준입출력함수, 연산자  (1) 2024.04.02
C언어란?  (0) 2024.03.12