常量折叠问题
来源:互联网 发布:手机听歌软件 编辑:程序博客网 时间:2024/05/18 02:47
常量折叠说的是,在编译阶段,对该变量进行值替换,同时,该常量拥有自己的内存空间,并非像宏定义一样不分配空间。
#include <stdio.h>int main(void) { const int con = 5; printf("%d\n",con); int *ptr; ptr = const_cast<int *> (&con); *ptr =67; printf("%d\n",con); printf("%d\n",(int)(&con)); printf("%d\n",(int)ptr); printf("%d\n",*(&con)); printf("%d\n",*ptr); return 0;}
Output:
5
5
-3441912
-3441912
5
67
在线编译结果
注:因为编译器在优化的过程中,会把碰见的const全部以内容替换掉(跟宏似的: #define pi 3.1415,用到pi时就用3.1415代替),这个出现在预编译阶段;但是在运行阶段,它的内存里存的东西确实改变了!!!
0 0
- 常量折叠问题
- C++中的常量折叠问题
- C++ 常量折叠问题的理解
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- 常量折叠
- hbase api常用方法使用及预分区解决热点问题
- 软件需求说明书
- linux dll hell--链接库real name, soname, link name
- MongoDB高级查询用法大全 - 程序猿_哲
- 2015.03.11 vim操作+特殊权限
- 常量折叠问题
- maven 服务搭建和使用
- 在RHEL6.0 X64系统中安装oracle 11g数据库及安装后设置
- Flume把网络流量存入日志文件
- Hbase 常用工具类
- BB平台oracle11g-180天密码过期问题处理
- 《一直以来伴随我的一些学习习惯》的记录
- Hadoop、Spark、HBase与Redis的适用性讨论
- android handler消息机制