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

Date:     Updated:

카테고리:

태그:

인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀
🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!


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값은 콘솔창 입력을 통해 런타임에 결정되는 값이므로
    • 컴파일 타임에 결정 될 수 없는 값이다.
      • 오류 !


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기