자료형과 선행처리기

상수와 변수

상수와 변수

  • 자료형

    • 프로그램에서 사용하는 자료의 형태
    • 상수와 변수로 구분하여 사용
  • 프로그램에서 자료(data)처리를 위해서는

    • 자료의 생성과 저장, 처리과정이 필요

상수

  • 상수

    • 항상 고정된 값을 갖는 자료
    • 값이 한번 정해지면 프로그램 도중 그 값을 변경할 수 없는 수
  • 문자형 상수

    • 단일 인용부호('')로 묶여 있는 1개의 영문자나 숫자문자
    • 내부적으로는 해당문자의 ASCII 코드값이 사용
    • Escape 문자: 키도브에 나타나 있지 않은 문자
  • 문자열 상수

    • 이중 인용부호("")로 묶여 있는 복수개의 영문자나 숫자
    • 기억공간에 보관될 때는 문자열 끝에 null 문자가 추가

변수

  • 변수

    • 변할수 있는 값
    • 프로그램에서 변수는 프로그램 실행도중에 변할 수 있는 값이 저장되는 기억공간을 의미
    • 따라서 변수는 사용 전에 반드시 선언하여 컴파일러가 기억공간에서 일정공간을 확보할 수 있도록 해야 함
  • 변수의 특징

    • 모든 변수는 이름이 있다.
    • 모든 변수는 정해진 자료형이 있다.
    • 모든 변수는 할당된 값을 갖는다.

자료형과 변수 선언

자료형과 변수 선언

  • 변수

    • 자료를 저장할 기억공간을 확보하고 이 공간에 이름을 붙여준다.
  • 변수 선언

    • 확보된 기억공간에 이름을 부여하는 것
  • 이러한 변수 선언을 위해 자료형이 필요

기본 자료형의 크기와 범위

  • 정수형

    • int,short, long, unsigned 형
    • 운영체제에 따라 표현범위가 다름
  • 문자형

    • char, unsigned char 형
    • ASCII 코드를 사용하여 처리
    • -128 ~ 127 까지의 값을 표현
  • 열거형

    • 숫자 대신 단어를 사용
    • 형식: enum 태그명 {열거자1, 열거자2, ...}

변수 선언

  • 변수명과 변수가 가질 자료형을 지정하여 변수를 위한 기억공간을 할당하는 것

  • 변수 선언시 고려 사항

    • 변수에 저장될 값의 크기
    • 변수의 선언 위치
    • 변수의 초기화

선행처리기

선행처리기

  • 선행처러기

    • 컴파일에 앞서 프로글매 선두에 선언된 지시가들을 미리 처리하는 역할을 수행
  • 선행 처리기의 종료

선행처리기기능
#include파일 포함
#define매크로 정의
#if #else #elif #endif조건부 컴파일
  • 선행 처리기를 사용할 떄 주의할 점
    • 반드시 #로 시작해야 한다
    • 명령문 끝에는 세미콜론을 붙이지 않는다
    • 한 줄에 하나의 명령만 쓴다
    • 소스 프로그램의 첫 부분에 위치한다.

파일 포함

  • #include

    • #include는 C언어에서 제공되는 헤더파일를 자신의 소스파일에 읽어 들여 함께 컴파일 하고자 할 때 사용
  • 형식

    • #include \<파일명>
    • #include "파일명"
  • 기능

    • \<파일명>은 표준 디렉토리(보통 include 디렉토리)에서 파일을 찾아 포함
    • "파일명"은 현재 사용 중인 디렉토리나 지정된 디렉토리에서 파일을 찾아 포함하며 또는 드라이브나 경로를 사용

매크로 정의

  • #define

    • #define 은 매크로를 정의할 때 사용
  • 매크로

    • 선행처리기 #define을 사용하여 단순 치환되는 자료
    • 프로그램 작성 시에 명령이나 수식 또는 상수값이 자주 사용될 때 이들을 대표하는 이름을 붙여 사용하는 대상
  • 매크로 상수 정의

    • 형식

      • #define 매크로명 자료
      • #undef 매크로명
    • 기능: 프로그램에 나오는 매크로명을 지정한 자료로 치환한 후 컴파일하거나(#define), 정의를 해제(#undef)한다.

  • 매크로 함수 정의

    • 형식

      • #define 매크로명(인수) (수식)
      • #define 매크로명(인수,인수) (수식)
    • 장점

      • 선행처리기에 의한 단순 치환 방식이므로, 전달 인자의 자료형을 명시할 필요가 없고, 또 어떠한 자료형 변수를 인자로 전달해도 잘 동작한다.
      • 한 두줄의 코드인 경우 함수로 정의한느 것보다 속도가 빠르다.

조건부 컴파일

  • #if, #else, #elif, #endif

    • 조건에 따라 프로그램에 컴파일하는 명령
    • 최적의 코드로 프로그램을 작성할 수 있기 때문에 시스템의 성능 향상
  • #if와 #elif 다음에는 컴파일 여부를 결정하는 조건문 필요

    • 조건문은 선행처리과정에서 진위 여부를 판단할 수 있어야 함
    • 변수 지정이나 함수 호출 불가
    • 주로 매크로 값이 사용