|
|
1
5
不,在您的示例中没有未指定排序。C 2018 6.8 4说:
在示例代码中:
5.1.2.3 3说:
因此,的值计算和副作用
这与C语义无关。硬件可以以某种方式执行操作,但其最终结果将符合所需的C语义(因为编译器是为了生成这样做的指令而编写的,即使硬件重新排序了操作)。 C语义没有定义硬件必须做什么,除了 可观察的行为 的。5.1.2.3.6表示可观察到的行为是:
因此,只要硬件最终产生所需的输入和输出以及上述其他行为,它执行操作的顺序无关紧要。
制作
对易失性对象的访问是由实现定义的。因此,C实现可能会将其定义为执行访问它的指令,也可能会将它定义为内存总线上出现的访问请求,也可能以其他方式定义它。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |