C+中的数值常量+; >p>是从C库数学中知道的数字常数MakROS,例如代码> MyPI/ . C++标准的一部分? 我在我的房间里找不到它们

C+中的数值常量+; >p>是从C库数学中知道的数字常数MakROS,例如代码> MyPI/ . C++标准的一部分? 我在我的房间里找不到它们,c++,C++,定义自定义常量的最佳方法是什么? 是一个常数。hpp与静态constexpr int foo=7是一个好的解决方案吗 如果问题1中的makros确实存在,我应该更喜欢它们的可读性,还是定义自己的常量(如在2中或以更好的方式)以确保类型安全 < C标准和C++标准都没有定义常数 MyPI < < 在常量定义中使用关键字static没有意义,因为默认情况下常量具有内部链接 在定义常数之前,您应该查看POSIX标准。< P> C标准和C++标准都不定义常数 MyPI/ < < 在常量定义中使用关键字s

定义自定义常量的最佳方法是什么?
是一个
常数。hpp
静态constexpr int foo=7是一个好的解决方案吗

  • 如果问题1中的makros确实存在,我应该更喜欢它们的可读性,还是定义自己的常量(如在2中或以更好的方式)以确保类型安全


  • < C标准和C++标准都没有定义常数<代码> MyPI < < 在常量定义中使用关键字static没有意义,因为默认情况下常量具有内部链接


    在定义常数之前,您应该查看POSIX标准。

    < P> C标准和C++标准都不定义常数<代码> MyPI/<代码> < < 在常量定义中使用关键字static没有意义,因为默认情况下常量具有内部链接

    在定义一个常量之前,您应该查看POSIX标准

  • M_PI
    不是标准

  • 我认为这更像是一种偏好。我见过以下方法:

    #define PI 3.1415
    const double PI = 3.1415;
    const double kPi = 3.1415;
    
  • 再一次,我认为这是一种偏好,或者取决于你实际上在做什么。还可以尝试以下方法:

    #define _USE_MATH_DEFINES
    #include <math.h>
    
    定义使用数学定义
    #包括
    
  • M_PI
    不是标准

  • 我认为这更像是一种偏好。我见过以下方法:

    #define PI 3.1415
    const double PI = 3.1415;
    const double kPi = 3.1415;
    
  • 再一次,我认为这是一种偏好,或者取决于你实际上在做什么。还可以尝试以下方法:

    #define _USE_MATH_DEFINES
    #include <math.h>
    
    定义使用数学定义
    #包括
    
  • 你可以使用boost-

    #include <boost/math/constants/constants.hpp>
    
    using namespace  boost::math::constants;
    
    double circumference(double radius)
    {
        return radius * 2 * pi<double>();
    }
    
    #包括
    使用名称空间boost::math::constants;
    双圆周(双半径)
    {
    返回半径*2*pi();
    }
    
    请参阅可以使用boost的

    #include <boost/math/constants/constants.hpp>
    
    using namespace  boost::math::constants;
    
    double circumference(double radius)
    {
        return radius * 2 * pi<double>();
    }
    
    #包括
    使用名称空间boost::math::constants;
    双圆周(双半径)
    {
    返回半径*2*pi();
    }
    
    查看

    可能有帮助可能有帮助