c++ - 非 volatile 变量

标签 c++ c volatile non-volatile

如果我将变量标记为 volatile ,则代码中的每次访问都可以保证读取。

但是非 volatile 变量呢?

是否保证每个函数/ block 至少读取一次,或者可以跨函数边界优化该值吗?

最佳答案

如果内联(即使是无缘无故的,即没有内联)无论如何都可以消除它们,为什么函数边界很重要?

I.O.W.:是的,在“假设”规则下几乎任何事情都是可能的:只要程序的行为就像编译器没有优化任何东西,就允许对其执行任何操作。 (该标准的边界也相当模糊。例如,消除拷贝是编译器的核心内容,而缺少副作用是该死的。)

关于c++ - 非 volatile 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12877907/

相关文章:

c++ - Concurrency::parallel_for (PPL) 创建了太多线程

c - 为什么我的计算器函数没有返回正确的结果?

java - 使用 volatile 发布不可变对象(immutable对象)安全吗?

c++ - 从两个元素初始值设定项列表初始化字符串

c++ - 正则表达式查找所有用位字段定义的结构

c++ - 是否有可能获得有关在 Qt 中发出事件的控件的信息?

C 程序在接受输入之前退出

c - 帮助简单的 linux shell 实现

c - 在没有 volatile 修饰符的情况下,具有递增全局变量的循环如何工作?

java - 奇怪的多线程行为