不是编译器优化C++中的代码部分

Joh*_*ang 2 c++ compiler-construction optimization

有没有办法告诉编译器不优化代码的选择部分?我知道你可以告诉编译器不要使用volatile来优化某些变量但是整个代码块呢?

Ben*_*igt 8

在大多数情况下,是的,但确切的方法取决于您的特定编译器.

通常它会是这样的:

#pragma optimize(off)
Run Code Online (Sandbox Code Playgroud)

任何与优化器相关的东西都完全超出了标准的范围.标准所扮演的唯一部分是强制执行行为,但编译器可以执行任何不违反所需行为的优化,或者根本不执行任何优化.

g ++的文档:

MS Visual C++文档(一旦到达,选择版本):