C 자료형

(2020-01-13)

C 언어 자료형, 자료형, size_t, sizeof, typedef

1. [C 언어]  자료형의 구분기본 자료형 (기본형) : 숫자
      - 정수형 :  char (signed char), int (signed int)
         . 변형 키워드 : 부호 (signed, unsigned), 크기 (short, long) 로써, 변형 가능
            .. short (short int)
            .. unsigned (unsigned int), unsigned short (unsigned short int)
            .. long (long int), unsigned long int
            .. short char, unsigned char
         . 한편, size_t 는, 
            .. unsigned int와 같은 자료형이나, 운영체제 마다 크기가 다르게 정의되도록 함
      - 실수형 :  float, double, long double

  ㅇ 기본 자료형 (기본형) : 문자 및 문자열
      - 문자형 :  char, signed char, unsigned char
      - 문자열 :  char 배열

  ※ [참고]
     - C99에서 추가된 기본 자료형 (기본형)
        . 논리값형 : _Bool
        . 큰 값 정수형 : signed long long int, unsigned long long int
     - 논리값형,문자형,정수형 모두, 정수 값 계산을 위한 수식에 사용 가능 

  ㅇ 파생 자료형 (유도형) : 배열, 포인터, 구조체, 공용체 등
      - 배열 ([ ])
      - 포인터형 (*)
      - void형 (void *) : 어떤 자료형이라도 가리킬 수 있는 포인터
         . 즉, 형태가 없는 자료형
      - 열거형 (enum)
         . 한 무리의 정수형 기호 상수(열거된 상수)들을 설정키 위함
      - 확장형 
         . 구조체 (struct)
         . 공용체 (union)


2. [C 언어]  자료형키워드기본 키워드 : char, int, float, double, void
     - char  : 문자 위주 이지만 숫자도 취급 (통상 1 바이트)
     - int   : 정수 (1 워드 단위로써 통상 4 바이트, 고정소수점 방식)
     - float, double, long double : 실수 (부동소수점 방식)
        . float (통상 4 바이트), double (통상 8 바이트), long double (통상 8~16 바이트)

  ㅇ 변형 키워드 : short, long, unsigned, signed
     - 부호 변형 : (signed, unsigned)
     - 크기 변형 : (short, long) 
     - 한편, 
        . signed 는, 디폴트 (양수,음수 모두 가능) 이나,
           .. 그 의미를 더욱 분명히 하기 위해 자주 사용됨
        . 변형 키워드 뒤 int 은, 생략 가능
           .. 例) short int (또는 줄여서, short), long int (또는 줄여서, long) 등
     - 결국, 
        . short = short int = signed short = signed short int 들은, 모두 동일 자료형 임
        . long = long int = signed long = signed long int 들은, 모두 동일 자료형 임

  ㅇ 例) 자료형 선언 및 초기화
     - unsigned short a;  (변수 a를 자료형 unsigned short 선언함)
     - unsigned short a = 32799; (변수 a를 자료형 unsigned short 선언, 상수 32799 초기화)

  ㅇ 한편, C 언어는, 별도로 논리값 자료형이 없음
     - true,false 논리값 자료형 없이 그냥 정수값으로 표현
        . 즉, 0 은 false로 판단, 0 이외는 true로 판단
     - 단, C99 버전에서 비로소  _Bool 형이 추가됨


3. [C 언어]  자료형의 크기 (메모리 상의 크기)

  ㅇ 이론적 자료형 최소허용 크기
     - char   (1 바이트) : -128 ~ +127
     - short  (2 바이트) : -32767 ~ +32767
        . 통상, 16 비트
     - int    (4 바이트) : -32767 ~ +32767
        . 통상, 컴퓨터 워드 크기에 따라, 16 비트(2 바이트),64 비트(8 바이트)로도 설정 가능
     - long   (4 바이트) : -2147483647 ~ +2147483647
        . 통상, 32 비트
     - float  (4 바이트) : 3.4*10-38 ~ 3.4*1038
     - double (8 바이트) : 1.7*10-308 ~ 1.7*10308
     - long double (8,12~16 바이트) : 1.2*10-4932 ~ 1.2*104932기본 자료형의 메모리 크기 확인 연산자 : sizeof
     - 例) sizeof(변수명); 또는 sizeof 변수명; // 임의 변수명의 크기
     - 例) sizeof(int);                        // 특정 자료형의 크기
     - 例) sizeof(배열명)/sizeof(배열 자료형); // 배열 크기
     - 例) sizeof(struct 구조체명);            // 구조체 크기


4. [C 언어]  자료형의 별칭 만들기 : typedef

  ㅇ typdef를 사용하면, 실제 타입 명칭 대신에 별칭을 만들고, 사용할 수 있음
     - 즉, 이미 정의된 내장 자료형이나 사용자 정의 자료형 보다 `더 짧거나 의미 있는 이름` 가능

  ㅇ 선언 형식 : typedef 키워드를 사용하고, 자료형 다음에, 별칭을 사용하면 됨
     - typedef 자료형 별칭;  // 기본 자료형의 별칭
        . 例) typrdef double salary;
     - typedef 자료형* 별칭; // 포인터 자료형의 별칭인 경우 임

  ※ [참고] ☞ C 언어 구조체 참조


[C 변수,자료형] 1. C 변수 2. C 자료형 3. C 형변환 4. 기억 클래스

 
        최근수정     요약목록     참고문헌