摘要: 它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序:XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器就不能像对待纯粹的程序那样对上述四条语句进行优化,只认为XBYTE[2]=0x58(即忽略前三条语句,.. 阅读全文
posted @ 2013-04-03 22:49 wiessharling 阅读(234) 评论(0) 推荐(0)
摘要: 本节课主要说明:我们可以把static const int size = 1000;替换为enum { size = 1000};在旧版的c++ 中,不支持在类中使用static const。这意味着const对在类中的常量表达式不起作用,不过,人们还是想得做到这一点。使用不带实例的无标记的enum(通常称为 enum hack)。例如下面代码:class Bunch{ enum { size = 1000}; int i[size];};int _tmain(int argc, _TCHAR* argv[]){ cout<<"sizeof(Bunch) = " 阅读全文
posted @ 2013-04-03 22:31 wiessharling 阅读(360) 评论(0) 推荐(0)