70,020
社区成员




int a;
float b;
double c;
scanf("%d, %d, %d", &a, &b, &c);
00401003 lea eax,[esp+0Ch]
00401007 push eax
00401008 lea ecx,[esp+8]
0040100C push ecx
0040100D lea edx,[esp+8]
00401011 push edx
00401012 push offset string "%d, %d, %d" (4020F4h)
00401017 call dword ptr [__imp__scanf (4020A4h)]
float d = (float)(b + a);
printf("%f", d);
0040101D fild dword ptr [esp+10h] -> st(0) = dword ptr [esp+10h]
00401021 add esp,8
00401024 fadd dword ptr [esp+0Ch] -> st(0) = st(0) + dword ptr [esp+0Ch]
00401028 fstp dword ptr [esp+10h] -> 接下来三行代码,不知道是如何把d压进去的
0040102C fld dword ptr [esp+10h]
00401030 fstp qword ptr [esp]
00401033 push offset string "%f" (402100h)
00401038 call dword ptr [__imp__printf (40209Ch)]
return 0;
0040103E xor eax,eax
请教一下, printf("%f", d);中的d是如何压栈进去的