C语言和C++中,volitile是怎么使用的?望大神指点一二!
答案:5 悬赏:40 手机版
解决时间 2021-03-26 19:04
- 提问者网友:愿为果
- 2021-03-26 08:27
C语言和C++中,volitile是怎么使用的?望大神指点一二!
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-03-26 09:59
简洁的说 就记住一句话就行: volitile修饰过的变量 所有相关的读写操作都必须要执行到 不能进行优化.
在什么场合下使用比较合适 可以根据这句话进行推导出来, 也可参考ericpaul举得例子.
在什么场合下使用比较合适 可以根据这句话进行推导出来, 也可参考ericpaul举得例子.
全部回答
- 1楼网友:琴狂剑也妄
- 2021-03-26 13:05
(米= 1.0;晶圆厂(1.0 /(2 *米-1.0))> =是1e-5;米+ = 1.0)
变(米= 1.0;晶圆厂(1.0 /(2 *米-1.0))<=战俘(10,-5);米+ = 1.0)
变(米= 1.0;晶圆厂(1.0 /(2 *米-1.0))<=战俘(10,-5);米+ = 1.0)
- 2楼网友:玩世
- 2021-03-26 12:37
就是提示编译器修饰的变量随时可能会改变,一般在多线程程序中用得比较多
- 3楼网友:低音帝王
- 2021-03-26 12:25
此关键字,提示编译器,对於宣告volitile之变数,不可使用最佳化功能。主要用於,程序中,不直接写入变数,由外部程序或硬件更改变数内容,可避免编译器导入最佳化,化简操作而导致错误运作。
参考资料:自己
- 4楼网友:煞尾
- 2021-03-26 11:00
通常情况下,程序当中的一些变量是会临时存入寄存器当中的,编译器为了最大化地追求效率,在连续访问同一个变量时,便不去内存当中取这个数据,而会直接从寄存器当中将它读出,如此来增加效率。而如果你将一个变量声明为volitile就告诉编译器该变量是容易发生变化的,也就是说从寄存器当中和内存当中取得的数据可能是不一致的,所以编译器便不进行自动优化了,每次都老老实实从内存当中将数据取出。
往往在多线程当中,将一些共享的数据设为volitile,可以保证数据的正确性。
往往在多线程当中,将一些共享的数据设为volitile,可以保证数据的正确性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯