C++中的const和constexpr异同比较

新西兰程序员 / 2024-11-12 / 原文

constexpr是C++11引入的关键字,这个关键字用于指明其后面是一个常量,编译器在编译程序时会将其结果计算出来,而无需等到程序运行阶段,这样的优化极大的提高了程序的运行效率

我们知道,C++程序的执行过程,大概需要经历  编译,链接,运行这3个阶段.  这里值得特别关注的是,常量表达式和非常量表达式的计算时机并不同 => 非常量表达式只有在程序运行阶段时才会计算出结果, 而常量表达式的计算往往发生在程序的编译阶段, 这可以极大的提高程序的执行效率 => 因为表达式只需要在编译阶段计算一次,节省了每次运行时都需要计算一次的时间和资源消耗.