c++之常量表达式

常量表达式看起来像函数,但其实不是函数,函数可以被调用,

#include <iostream>
constexpr double GetPi() { return 22.0 / 7 ;} 
constexpr double TwicePi() { return 2 * GetPi(); }

int main( int argc , char **argv)
{
    using namespace std;
    const double pi = 22.0 / 7; 

    cout << "constant pi contains value " << pi <<endl;
    cout << "constexpr GetPi() returns value" << GetPi() << endl;
    cout << "constexpr TwicePi() returns value" << TwicePi() << endl;             


    return 0; 
}
constant pi contains value 3.14286
constexpr GetPi() returns value3.14286
constexpr TwicePi() returns value6.28571

 

常量表达式GetPi() 和TwicePI()是函数表达式,编译器将每个GetPi()都被替换为 3,14286和TwicePi() 都替换为6.28571,

程序执行的速度比将这些计算放在函数中更快

 

常量表达式必须包含简单的实现,并返回简单类型,常量表达式可以包含简单的决策结构,如if和switch

posted @ 2019-11-24 14:39  miaorn  阅读(1042)  评论(0编辑  收藏  举报