sha*_*oth 5 c++ language-lawyer
根据此缺陷报告, C++ 03 Standard不保证在以下代码中:
volatile int x;
void f() {
x;
}
Run Code Online (Sandbox Code Playgroud)
从中读取变量.
那么如何编写只读取volatile变量值并丢弃结果的代码(为了读取而读取)?
int i = x;应该管用.此代码绝对需要读取volatile变量,并且不允许优化器优化读取.但由于变量i未使用,优化器可以避免存储读取值所涉及的任何额外工作.
您可能还需要这样的东西来避免编译器警告: (void)i;
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |