本来今天是我可以在csdn上发博客的好日子,但现在却变成了面试失败的坏日子。最近一直都在折腾Python,把C的给都忘记了,结果没复习就去了,所谓的自食其果吧~~
今天的失败主要是忘记了volatile这个关键字,我想有很多童鞋估计也不太清楚它是什么意思。不过失败是成功之母,这一次跌倒让我刻苦铭心的记住了这个关键字。
volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 当要求使用 volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。
也就是读取这个值的时候每次都是从内存读取,而不是寄存器。主要应用在多线程数据中。
另外C++中一个有volatile标识符的类只能访问它接口的子集,一个由类的实现者控制的子集。用户只能用const_cast来获得对类型接口的完全访问。此外,volatile向const一样会从类传递到它的成员。
以上内容来自http://blog.sina.com.cn/s/blog_4e345ce70100rsc7.html中,里面有更详细的介绍。
最后:命运只掌握在看清楚它的人手中。
第一篇文章
最新推荐文章于 2024-11-12 23:15:59 发布