你检查过j的值吗?
授人以渔,不授人以鱼。
#include <stdio.h> int j=0; int ff() { if(j>12332)return 0; j++; ff(); return 0; } void main() { ff(); printf("%d\n",j); }
00401020 push ebp 00401021 mov ebp,esp 00401023 sub esp,40h //此处留出64字节,64+4个push*4+1个call*4=84字节(这是不做任何变量定义的情况) 00401026 push ebx 00401027 push esi 00401028 push edi 00401029 lea edi,[ebp-40h] 0040102C mov ecx,10h 00401031 mov eax,0CCCCCCCCh //填充64个0xcc 00401036 rep stos dword ptr [edi]