我在 STVD ide 中使用COSMIC 编译器,即使使用-no关闭了优化(文档说“-no:不要使用优化器”),一些代码行被删除并且不能在它们上放置断点,也不是它们可以在拆卸中找到。
我尝试设置 -oc (将已删除的指令保留为注释),这导致甚至没有将已删除的行显示为注释。
bool foo(void)
{
uint8_t val;
if (globalvar > 5)
val = 0;
for (val = 0; val < 8; val++)
{
some code...
}
return true;
}
val
我知道在 for 循环之前设置为 0似乎很愚蠢,但让我们假设出于某种原因这是必要的。当我没有设置优化时,我希望它不会被优化,而是val = 0;
会被删除而没有任何痕迹。
我不是在寻找一种解决方法,比如声明val
volatile whitch 可以解决问题。我宁愿寻找一种方法来防止优化,或者至少了解/知道在编译时对我的代码进行了哪些更改。