gpt4 book ai didi

代码可以停止使用编译器优化

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:09 26 4
gpt4 key购买 nike

<分区>

我正在使用 PellesC C 编译器。有时我的代码随机停止工作。一个特定的语句可以触发它。例如,我将一个变量乘以 sin(c)(c 是一个 double ),我的代码似乎刚刚结束执行但没有结果。有时它会卡住,有时它似乎只是返回,但我总是可以通过删除有问题的语句或禁用编译器优化来修复它,特别是“最大化速度”或“最大化速度”。如果我在崩溃点附近的某处添加 printf 语句,卡住也会在几乎 100% 的时间内消失。我从来没有发现任何迹象表明我访问内存不当,我很确定这是一个编译器问题。我想知道是否有人可以对此有所了解。事实上,我有没有可能做错了什么?或者这是 Pelles C 编译器的已知问题?

编辑:

改变

canvas->pixels[(y*canvas->pitch)+(x*canvas->Bpp)+2]=(unsigned char)(255.0*dtempA*(1-sin(c)));
canvas->pixels[(y*canvas->pitch)+(x*canvas->Bpp)+1]=(unsigned char)(255.0*dtempA*(1+cos(c)));
canvas->pixels[(y*canvas->pitch)+(x*canvas->Bpp)]=(unsigned char)(255.0*dtempA*(1+sin(c)));

to(最后一行末尾的差异)

canvas->pixels[(y*canvas->pitch)+(x*canvas->Bpp)+2]=(unsigned char)(255.0*dtempA*(1-sin(c)));
canvas->pixels[(y*canvas->pitch)+(x*canvas->Bpp)+1]=(unsigned char)(255.0*dtempA*(1+cos(c)));
canvas->pixels[(y*canvas->pitch)+(x*canvas->Bpp)]=(unsigned char)(255.0*dtempA*(1+1));

让它发挥作用。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com