1. 리터럴 상수
#include <stdio.h>
int main() {
using namespace std;
const double gravity{9.8};
//gravity = 1.2;
return 0;
}
const로 선언하면 값을 변경할 수 없다.
const는 선언과 함께 정의를 해줘야 한다.
const double과 double const는 같음
- 아래는 모두 같은 기능
const double gravity{9.8}; // C++11에서 도입된 uniform initialization
const double gravity(9.8);
const double gravity=9.8;
2. constexpr
컴파일타임에 결정되는 상수인지 확인!
(special_number는 런타임에 정해지므로 constexpr을 사용할 수 없음)
#include <iostream>
int main() {
using namespace std;
constexpr int my_const(123);
int number;
cin >> number;
const int special_number(number);
return 0;
}
3. 예시
sample.cpp
#include <iostream>
#include "MY_CONSTANTS.h"
using namespace std;
int main() {
double radius;
cin >> radius;
double circumference = 2.0 * radius * constants::pi;
cout << circumference << endl;
return 0;
}
MY_CONSTANTS.h
#pragma once
namespace constants
{
constexpr double pi(3.141592);
constexpr double avogadro(6.0221413e23);
constexpr double moon_gravity(9.8 / 6.0);
}
'코딩 > C++' 카테고리의 다른 글
전역변수, static 변수, 내부 연결, 외부 연결 (0) | 2024.02.19 |
---|---|
비트플래그, 비트마스크 (0) | 2024.02.17 |
namespace (0) | 2024.02.16 |
헤더파일과 헤더 가드 (0) | 2024.02.16 |
모던 C++입문 [1.2 변수] (0) | 2024.02.13 |