簡體   English   中英

C ++中的數值常數

[英]Numeric constants in C++

  1. C ++標准的C庫math.h是否知道諸如M_PI類的數字常量makros?
    我在參考資料中找不到它們。

  2. 定義自定義常量的最佳方法是什么?
    是一個帶有static constexpr int foo = 7;constants.hpp static constexpr int foo = 7; 一個特殊的命名空間是一個好的解決方案?

  3. 如果確實存在問題1中的makros,那么我應該為它們的可讀性而更喜歡它們還是為類型安全性定義我自己的常量(例如2或更好的方式)?

您可以使用升壓-

#include <boost/math/constants/constants.hpp>

using namespace  boost::math::constants;

double circumference(double radius)
{
    return radius * 2 * pi<double>();
}

請參閱說明文件

C標准和C ++標准都沒有定義常量M_PI

在常量定義中使用關鍵字static是沒有意義的,因為默認情況下,常量具有內部鏈接。

在定義常量之前,您應該瀏覽一下POSIX標准。

  1. M_PI不是標准的。

  2. 我認為這更可取。 我看過以下方法:

     #define PI 3.1415 const double PI = 3.1415; const double kPi = 3.1415; 
  3. 同樣,我認為這是一種偏愛,或者可能取決於您的實際工作。 也嘗試一下:

     #define _USE_MATH_DEFINES #include <math.h> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM