永发信息网

C语言和C++中,volitile是怎么使用的?望大神指点一二!

答案:5  悬赏:40  手机版
解决时间 2021-03-26 19:04
C语言和C++中,volitile是怎么使用的?望大神指点一二!
最佳答案
简洁的说 就记住一句话就行: volitile修饰过的变量 所有相关的读写操作都必须要执行到 不能进行优化.

在什么场合下使用比较合适 可以根据这句话进行推导出来, 也可参考ericpaul举得例子.
全部回答
(米= 1.0;晶圆厂(1.0 /(2 *米-1.0))> =是1e-5;米+ = 1.0)

变(米= 1.0;晶圆厂(1.0 /(2 *米-1.0))<=战俘(10,-5);米+ = 1.0)
就是提示编译器修饰的变量随时可能会改变,一般在多线程程序中用得比较多
此关键字,提示编译器,对於宣告volitile之变数,不可使用最佳化功能。主要用於,程序中,不直接写入变数,由外部程序或硬件更改变数内容,可避免编译器导入最佳化,化简操作而导致错误运作。

参考资料:自己

通常情况下,程序当中的一些变量是会临时存入寄存器当中的,编译器为了最大化地追求效率,在连续访问同一个变量时,便不去内存当中取这个数据,而会直接从寄存器当中将它读出,如此来增加效率。而如果你将一个变量声明为volitile就告诉编译器该变量是容易发生变化的,也就是说从寄存器当中和内存当中取得的数据可能是不一致的,所以编译器便不进行自动优化了,每次都老老实实从内存当中将数据取出。
往往在多线程当中,将一些共享的数据设为volitile,可以保证数据的正确性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我在微信被骗了2500怎么办,能追回吗
粉状活性炭目数越大吸附效果越好吗?
我的联想昭阳E47A为什么连接不了无线网络?
劝小平爷爷小时候一怎么样就怎么样造句
纸塑袋国家标准是什么?有的话是执行哪个标准
如右图所示,若同时拔开橡胶塞,试管内的水位
怎么识别卡罗拉双擎车上的高压零部件?
叶子正面绿色,背面紫色,植物名字是什么
3年E组 旅立ちのうた 什么时候能有完整版的?
家国一体到底是什么意思?
有没有简单一点的茶诗?急~~
私刻公章,伪造财务委托书领款(八千元)犯法
老版z7m怎么装固态,各位大佬
本科毕业几年可以申报中级职称?比如我2008年
网上已经把火车票买好了,因为是夜里3点多的
推荐资讯
If you do not know how to you at table in
サムロータリスイッチ是什么意思
48×1/4等于几用分数解答
不完整前八后十六音符怎么写的
吻嘴唇以下部位代表什么
捐款属于什么会计科目
c语言程序求解,求5*5的数组,最对角线最大值
如今的广州火石软件公司怎么样?应聘要做测试
奔驰最长有没有十二米的的车
se535ltd和普通透明哪个好
丐帮现在pvp表现怎样
可以在主机机箱里放干冰降温吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?