본문 바로가기
C │ C++ │ C#/C++

C++ Chapter 2.7 : 리터럴 상수, 심볼릭 상수

by Pokaa 2023. 8. 16.
728x90
728x90
SMALL

Chapter2. 변수와 기본 자료형

 

 

리터럴 상수


8진수 : 0

int x = 012;
  • int x = 012;
    ο 8진수로 12라는 것.
    ο 십진수로 18 + 21 = 10


16진수 : 0x

int x = 0x12;
  • int x = 0x12;
    ο 16진수로 12라는 것.
    ο 십진수로 116 + 21 = 18


2진수 : 0b

int x = 0b1011;
  • int x = 0b12;
    ο 2진수로 1011 라는 것.
    ο 십진수로 18 + 04 + 12 + 11 = 11


가독성 높이기

int x = ob1011'1011'1000'
  •  '  로 가독성을 높여줄 수 있다.
    ο C++부터 허용.  는 읽지 않는다.

 

심볼릭 상수


상수는 심볼릭하게

  • const double gravity{9.8};
    ο 중력 가속도는 9.8 값으로 고정된 상수이다.
    ο 중력 가속도로 어떤 연산을 할 때 * 9.8 하는 것 보단
        ■ 중력 가속도 의미가 사는 * gravity 라고 하는게 낫지 !
            ■ 이런게  심볼릭 상수 
            ■ 상수 리터럴로 그냥 쓰기보단 이런  기호적 상수  자주 쓰기
    ο const 상수이므로 값을 바꿀 수 없다.
  • 함수 매개변수에도 const를 붙이는 경우가 많다.
    ο 파라미터 값을 변형시키지 않았으면 하는 마음에서.
  • C++에선 #define 매크로 잘 쓰지 않는다. 디버깅시 위아래를 왔다 갔다 해야하기 때문에
    ο 매크로보다는 const int PRICE = 30; 같은 기호적 상수를 더 많이 쓴다.
#define PRICE 30  // 보다는   
const int PRICE = 30; // 이걸 더 추천 in C++
  • 이러한 심볼릭 상수들은 헤더파일에 모아놓는게 좋다.


constexpr

constexpr int my_const(123);

 constexpr 

  • 컴파일 타임에 값이 완전히 결정됨을 알려주는 키워드,
int number;
cin >> number;

constexpr int my_const(number);  // error !
  • number값은 콘솔창 입력을 통해 런타임에 결정되는 값이므로
    ο 컴파일 타임에 결정 될 수 없는 값이다.
        ■ 오류 !
728x90
300x250
LIST