常量折叠-2

来源:互联网 发布:python 时间差 分钟 编辑:程序博客网 时间:2024/05/06 09:26

在C++中有提到常量折叠,以前有些搞不懂,看了几遍c++编程思想后,终于有所理解
 
  例如  const int i=100;
        const int j=i+10;
在编译时并没有给i和j 分配存储空间,也就是说遇到i就用100代替,编译同时也进行了简单的常量计算,所以遇见j就用110代替,这样i和j就不占用内存了,如果要用他们的地址,就要为他们分配空间了,如
    
       long address =(long)&j;
这必须为j分配空间,才有地址,此时虽然j占用内存,但其值是不能改变的,同样可以通过j 定义常量表达式
如:
       char buf[j+10];