ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++ 변수 타입
    C++ 2021. 3. 10. 11:25
    반응형
    변수들을 저장할 때는 데이터의 종류를 분류하기 위해 타입이 정해져 있다.

    정수형

    정수형 타입 메모리 크기
    (signed) short 2 byte
    unsigned short 2 byte
    (signed) int 4 byte
    unsigned int 4 byte
    (signed) long 4 byte
    unsigned long 4 byte
    unsigned long long 8 byte

    Signed vs Unsigned

    간단하게 설명하자면, signed는 부호가 있고, unsigned는 부호가 없는(양수) 자료형을 의미한다. signed는 MSB(Most Significant Bit, 간단히 말해서 자료형을 비트로 표현했을 때, 가장 왼쪽에 있는 비트를 말한다)로 부호를 표현하고, unsigned는 그렇지 않다.


    일반적으로 int의 표현범위가 long의 표현범위보다 더 많다고 알려져 있는데, 왜 메모리의 크기가 똑같을까?

    C++ 표준안은 정수 타입의 크기를 명시하지 않고 있고, 최소한의 크기를 규정한다.

    1. short int의 크기는 적어도 2바이트보다 커야 한다.
    2. int의 크기는 적어도 short int의 크기보다 커야 한다.
    3. long int의 크기는 적어도 4바이트보다 커야 하고 int의 크기보다 커야 한다.

    여기서 보면, int의 정확한 크기에 대해서 명시적으로 나타내지는 않고 있다. 그 대신 int의 크기는 시스템의 자연스러운 크기를 따르도록 하고 있다.

    시스템의 자연스러운 크기란, 시스템이 한번에 처리할 수 있는 크기를 말한다. (64비트 운영체제에서도 int의 크기는 4byte이다. long의 경우 32비트 운영체제에서는 4byte(32bit), 64비트 운영체제에서는 8byte(64bit)인데, 윈도우즈 64비트 운영체제에서는 long도 4byte이다.)


    출처 : 뇌를 자극하는 C++ 프로그래밍. 이현창 저. 한빛미디어



    실수형

    실수형  메모리 크기
    float 4 byte
    double 8 byte
    long double 8 byte

    문자형

    문자형 메모리 크기
    char 1 byte
    unsigned char 1 byte
    char에 unsigned는 왜 있는 걸까? -> 궁금증 해소 후 작성하겠습니다ㅜㅜ

    auto 키워드를 이용한 선언

    C++11부터는 특정 타입을 명시하는 대신에, auto 키워드를 이용해서 초기값을 추론해 초기값에 맞춰 선언을 할 수 있도록 합니다

    반응형

    'C++' 카테고리의 다른 글

    C++ 제어문  (0) 2021.03.11
    C++ 연산자 정리  (0) 2021.03.11
    C++ Type converison(타입 변환)  (0) 2021.03.11
    C++ 변수 선언 방법  (0) 2021.03.10
    간단한 C++ 프로그래밍 구조  (0) 2021.03.10
Designed by Tistory.