실행하기 전에 변경되지 않는 상수가 있으면 헤더 파일로 선언하십시오.
//constants.hpp
#ifndef PROJECT_NAME_constants_hpp
#define PROJECT_NAME_constants_hpp
namespace constants {
constexpr double G = 6.67408e-11;
constexpr double M_EARTH = 5.972e24;
constexpr double GM_EARTH = G*M_EARTH;
}
#endif
//main.cpp
using namespace constants;
auto f_earth = GM_EARTH*m/r/r; //Good
auto f_earth = G*M_EARTH*m/r/r; //Also good: compiler probably does math here too
이 작업을 수행하려는 이유는 컴파일러가 런타임 전에 상수 값을 미리 계산할 수 있기 때문에 값이 많으면 좋습니다.
간단한 클래스를 사용하여 값을 전달할 수도 있습니다.
class Params {
public:
double a,b,c,d;
Params(std::string config_file_name){
//Load configuration here
}
};
void Foo(const Params ¶ms) {
...
}
int main(int argc, char **argv){
Params params(argv[1]);
Foo(params);
}