关键字 mutable、volatile 的作用
来源:互联网 发布:羊毛毡仿真小猫咪淘宝 编辑:程序博客网 时间:2024/05/21 19:23
来源:http://www.cnblogs.com/cheney23reg/archive/2010/08/13/1799279.html
有些小错误,不影响阅读,程序例子没验证。
1.mutable 关键字 (C++)
字典意思
adj. 易变的,不定的;性情不定的
语法意思
如果需要在const成员方法中修改一个成员变量的值,那么需要将这个成员变量修饰为mutable。即用mutable修饰的成员变量不受const成员方法的限制。
可以认为mutable的变量是类的辅助状态,但是只是起到类的一些方面表述的功能,修改他的内容我们可以认为对象的状态本身并没有改变的。
实际上由于const_cast的存在,这个概念很多时候用处不是很到了。
2.volatile (C/C++)
字典意思
adj. 爆炸性的;不稳定的;挥发性的;反覆无常的
n. 挥发物;有翅的动物
语法意思
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
下面是volatile变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3). 多线程应用中被几个任务共享的变量
回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用这些都要求volatile变量。不懂得volatile内容将会带来灾难。
假设被面试者正确地回答了这是问题(嗯,怀疑这否会是这样),我将稍微深究一下,看一下这家伙是不是直正懂得volatile完全的重要性。
1). 一个参数既可以是const还可以是volatile吗?解释为什么。
2). 一个指针可以是volatile 吗?解释为什么。
3). 下面的函数有什么错误:
- 关键字 mutable、volatile 的作用
- const、volatile、mutable关键字
- const、volatile、mutable关键字
- 关键字:mutable和volatile
- 【转】C/C++中的 mutable、volatile 关键字作用详解
- volatile关键字的作用
- volatile关键字的作用
- volatile关键字的作用
- volatile关键字的作用
- volatile关键字的作用
- volatile关键字的作用
- 关键字volatile的作用
- Volatile关键字的作用
- volatile关键字的作用
- volatile关键字的作用
- volatile 关键字的作用
- volatile关键字的作用
- volatile关键字的作用
- ASP rs.getrows方法获取记录数
- 精选31个网站界面设计实践教程
- Objective-C 入门(转)
- SQL查询优化 LEFT JOIN和INNER JOIN
- 怎么在datagridview中对记录进行上移或下移操作?
- 关键字 mutable、volatile 的作用
- java基础
- How to remove ActiveX Controller
- InstantRails2.0的升级【转载】
- 我的大学
- Oracle 查看锁以及解锁
- 视频处理术语解析(1)Vertical Blanking Interval (VBI)
- 专题一:文件读写
- 电子商务中遇到组合搜索的问题