delphi const
参考:http://www.cnblogs.com/tibetwolf/articles/1785744.html
1.const修饰可能会优化编译代码。关于这一点与编译器密切相关,由于变量被const修饰后其内存大小和位置是确定的
2.
简单说,一个const修饰的变量被改变意味着我们需要的是一个“变量”而不是一个“恒定的、不可修改的”的“常量”。
仔细观察下列定义:
I const AConst = 2;
II const AModifiedConst: integer = 3;
可以发现,I中const修饰的是“2”, II中const修饰的是Integer;除了语义上的约束强调外,I强调了值2不可改变,II强调了类型Integer不可更改。const修饰符是“左结合”操作符。准确的说,这就是Pascal编译器对const的理解。所以,当使用{$J+}和{$J-}编译指令时,I不会发生改变,II会。
补充:
任何变量都是一个内存块,从某种程度上说,const修饰实际上是修饰这个内存块,这种修饰强调两点:1,内存块位置和大小不可以改变;2,内存块内容不可以改变。当仅仅强调1时就是“静态变量”的情况,当二者同时强调时,就是上面I所对应的情况。所以,就我个人而言,我更倾向于Pascal所使用const语义而不是C中使用“静态变量”语义,后者似乎缺少某种一致性,增加了概念。
3.、const是什么?
const是一个修饰词,来源于英文constant,意思是“常量、恒量、不变的” 的意思。注意!const是一个修饰词,代表一种约束(可能是语义上的,也可能是语法上的),不是“常量”!简单说,“const”不等价“常量”。“常量”是一个名词,const不是!
最新文章
- selenium 使用action进行鼠标,键盘操作
- Jquery、简单的下拉列表、网页左部导航菜单
- 使用css使textbox输入内容自动变大写
- Vector和Stack(已过时,不建议使用)
- JAVA学习Swing章节流布局管理器简单学习
- 机器学习 —— 决策树及其集成算法(Bagging、随机森林、Boosting)
- Java - 选择性排序 PHP || Java 代码对比
- Linux&;shell 之Linux文件权限
- CSS学习笔记——盒模型,块级元素和行内元素的区别和特性
- Keil - 编译错误总结 01
- linux下搭建SVN服务器完全手册-很强大!!!!!
- 根据相同的字段创建或者修改一个Model
- debian The type initializer for 'System.Drawing.KnownColors' threw an exception
- centos 7 进入图形界面
- 激光三角法点云重建分享——halcon 方法
- 高级shell 脚本
- php优秀框架codeigniter学习系列——CI_Security类学习
- 3Sum(or k_Sum)
- hdu 1251 统计难题(字典树)
- js replace全部替换的方法