C 자료형 키워드, C 자료형 크기

(2024-01-27)

sizeof


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

  ㅇ 변형 키워드  :  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 형이 추가됨


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

  ㅇ 이론적 자료형 최소허용 크기
     - char        (1 바이트)  :  -128 ~ +127
     - short       (2 바이트)  :  -32767 ~ +32767
        . 통상, 16 비트
     - int         (4 바이트)  :  -32767 ~ +32767
        . 통상, 컴퓨터 워드 구현 크기에 따라, 2,4,8 바이트 가능
     - long        (4 바이트)  :  -2147483647 ~ +2147483647
        . 통상, 32 비트
     - long long   (8 바이트)
     - 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 구조체명);             // 구조체 크기

  ㅇ 자료형 크기 등이 정의되어 있는 헤더 파일
     - limits.h  :  자료형 크기 등이 기계의존적으로 정의되어 있음  
     - stdint.h  :  데이터형 마다 그 길이를 명확하게 수치로써 정의함 (C99에서 새롭게 도입됨)
        . 서로다른 기계 간에 이식성에 도움을 주기 위함


3. [C 언어]  데이터 모델컴파일러플랫폼에 따라, 자료형에 대한 모델이 달라짐
     - (약어) S : short, I : int, L : long, LL : long long, P : 포인터
  
  ㅇ ILP32 (int, long, pointer : 32 비트)
     - x86 (32 비트)  :  리눅스, 솔라리스, BSD, OS X, Windows
  ㅇ LLP32 (long long, pointer : 64 비트) / IL32P64 (int,long : 32 비트, pointer : 64 비트)    
     - x86 (64 비트)  :  Windows
  ㅇ LP64 (long, pointer : 64 비트) / I32LP64 (int : 32 비트, long,pointer : 64 비트)
     - x86 (64 비트)  :  리눅스, 솔라리스, BSD, OS X
  ㅇ ...

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

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)