C++ 不是编译器优化C++;

C++ 不是编译器优化C++;,c++,optimization,compiler-construction,C++,Optimization,Compiler Construction,有没有办法告诉编译器不要优化代码的某些部分?我知道你可以告诉编译器不要使用volatile优化掉某些变量,但是整段代码呢?在大多数情况下,是的,但具体方法取决于你的特定编译器 通常是这样的: #pragma optimize(off) 任何与优化器相关的内容都完全超出了标准的范围。标准所扮演的唯一角色是强制执行行为,但是编译器可以执行任何不违反所需行为的优化,或者根本不违反所需行为的优化 g++的文档: MS Visual C++的文档(选择一个版本后): 什么编译器?提到什么操

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

在大多数情况下,是的,但具体方法取决于你的特定编译器

通常是这样的:

#pragma optimize(off)
任何与优化器相关的内容都完全超出了标准的范围。标准所扮演的唯一角色是强制执行行为,但是编译器可以执行任何不违反所需行为的优化,或者根本不违反所需行为的优化

g++的文档:

MS Visual C++的文档(选择一个版本后):


什么编译器?提到什么操作系统可能也不错。不同的编译器为这类事情提供了不同的选项。您使用的编译器是什么?我使用VS2008进行模拟,使用CodeSourcery G++进行实际设备。更重要的是,为什么要关闭优化?它破坏了你的密码吗?