最近编译器都是老奇葩了
while( *pbuf != 0x90 )
{
pbuf--;
}
结果死循环了,不调不知道,一调,擦,,*pbuf被编译成固定值存在寄存器中,每次pbuf--后,寄存器还是原来的值去跟0x90比较,
泪流满面啊。可能是我代码风格写的特别乱吧,编译器老是跟我作对,我都无语了。
编译环境:win7 sp1 x64
编译器: VC++6.0、VS 2008
编译代码
#include <stdio.h>
int month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main(int argc, char* argv[])
{
int total = 0;
int xinqi = 2;
for (int i=0; i<12; i++)
{
for (int j=0; j<month[i]; j++, xinqi++)
{
if ( xinqi == 6 || xinqi == 7 )
{
total++;
}
if ( xinqi == 8 )
{
xinqi == 1;
}
}
}
printf("%d\n", total);
return 0;
}
VC6编译结果(问题部分):
19: {
20: total++;
00401084 mov edx,dword ptr [ebp-4]
00401087 add edx,1
0040108A mov dword ptr [ebp-4],edx
21: }
22: if ( xinqi == 8 )
23: {
24: xinqi == 1;
25: }
26: }
0040108D jmp main+47h (00401057)
27: }
0040108F jmp main+2Fh (0040103f)

VS2008编译结果:
{
if ( xinqi == 6 || xinqi == 7 )
0042D68E cmp dword ptr [xinqi],6
0042D692 je main+7Ah (42D69Ah)
0042D694 cmp dword ptr [xinqi],7
0042D698 jne main+83h (42D6A3h)
{
total++;
0042D69A mov eax,dword ptr [total]
0042D69D add eax,1
0042D6A0 mov dword ptr [total],eax
}
if ( xinqi == 8 )
{
xinqi == 1;
}
}
0042D6A3 jmp main+4Dh (42D66Dh)
}
0042D6A5 jmp main+35h (42D655h)
printf("%d\n", total);这样的编译结果真受伤。。。。
if ( xinqi == 8 )
{
xinqi == 1;
}
代码怎么啦?编译器就认为是费代码,基可以直接抛弃?Debug模式下不应该啊,如果说是Release下把这段代码吃掉了,那我还信,为什么Debug下无任何优化却会消失?神一般的存在。

相关推荐
BCC编译器干嘛用的?
最近碰到奇葩的编译器了,BCC gcc -m32 -fno-stack-protector "-DBIOS_BUILD_DATE=\"`date '+%m/%d/%y'`\"" -E -P rombios.c > _rombios_.c bcc -o rombios.s -C-c -D__i86__ -0 -S _rombios_.c make: bcc:命令未找到 make: *
fengmian123
fengmian123
QYR-18900-2026-2032全球与中国智能旋转导向钻井系统市场现状及未来发展趋势 Sample-shijunzhong.docx
QYR-18900-2026-2032全球与中国智能旋转导向钻井系统市场现状及未来发展趋势 Sample-shijunzhong.docx
XERJ 是一款受到社区信赖的本地 AI 搜索引擎
XERJ 是一款受到社区信赖的本地 AI 搜索引擎,能自动为任意文件夹建立索引,让编程智能体直接检索所需代码,省去逐个读取文件消耗的 token。它的主要用途是参考现有实现来写代码(reference coding):接到任务后,智能体下载与任务相关的开源仓库,建立索引,再查阅这些项目的解决方法。 在一项对照研究中,这种做法让智能体的输出 token 用量降至原来的约 1/2.7,同时保持 16/16 的任务完成率(案例研究)。用户在日常开发中报告的用量约为原来的 1/5(使用反馈)。有了可检索的参考实现,较小、较便宜的模型也可能胜过只凭记忆工作的昂贵模型,减少反复修改的次数。把下面这段提示词交给智能体即可开始
DocRes.Vulkan.WinForms.VS2022-Source-r1.1-20261016-102846-206.zip
DocRes.Vulkan.WinForms.VS2022-Source-r1.1-20261016-102846-206.zip 博客地址:https://blog.csdn.net/lw112190/article/details/168119884


