1. constconstexpr浅谈

Posted 干锅土鸡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1. constconstexpr浅谈相关的知识,希望对你有一定的参考价值。


var和var2表面上是一个东西,实际上不是的。

C++中,当碰见const声明时在符号表中放入常量,编译过程中发现使用常量则直接以符号表中的值替换,编译过程中若发现:

  1. 对const常量使用extern
  2. 对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浅谈的主要内容,如果未能解决你的问题,请参考以下文章

浅谈背包问题

经典进程同步问题

请问怎么给perl里的标量,哈希,数组赋初值?

浅谈Java中异常

浅谈js的join()方法

浅谈JS异步(asychrouous)