int main()
{
int a = 0;
printf("a=%d\n", a);
float f = 2.0f;
printf("f=%f\n", f);
return 0;
}
查看汇编代码,
call printf出现两次,但是ret只在程序末尾出现了一次。
ret是pop 返回地址并执行该地址的指令。
所以,不应该是第一次call printf后,调用ret,然后继续执行,直到第二次call printf,再调用ret?
------解决方案--------------------
那两次 call 对应的 ret 是在 printf 函数的里面,你看到的 ret 是 main 函数的 ret