1. constconstexpr浅谈
Posted 干锅土鸡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1. constconstexpr浅谈相关的知识,希望对你有一定的参考价值。
var和var2表面上是一个东西,实际上不是的。
C++中,当碰见const声明时在符号表中放入常量,编译过程中发现使用常量则直接以符号表中的值替换,编译过程中若发现:
- 对const常量使用extern
- 对const常量使用&操作符
则给对应的常量分配存储空间
例如:
const int c = 0;
编译器编译到这里时,将常量c放入符号表。
int* p = (int*)&c;
到这里时会给c分配空间,上一步只是放入符号表!
C++11新关键字:constexpr
也是个常量的概念,在编译的时候求值。能提升性能。
constexpr int func()
//int a;//error,无初值,相当于变量
//int a = 5;//ok
return 5;
constexpr int var = 1;//ok
int b = 5;
constexpr int var2 = b;//error,b为变量,在编译的时候确定不了b的值
constexpr int var3 = func();//ok
constexpr修饰的函数中不能有变量。
以上是关于1. constconstexpr浅谈的主要内容,如果未能解决你的问题,请参考以下文章