十一 192010
 

/******************************
*Filename: Inception.cpp
*Author: Sean
*Date/Time: 2010.11.18/00:58
*Modified: 2010.11.18/11:27
*Version: 1.3 (Notes added)
******************************/

#include

void func_inception(int count)
{
count += 1;
printf(“在梦境第%d层\n”, count);
if (count == 4) return;
//count是梦境深度的计数,也用来模拟上一层发出的失重信号,这里与影片有出入
func_inception(count);
//进入下一层梦境,count也用来模拟在两层之间传递信息,如那段音乐
printf(“回到梦境第%d层\n”, count);
return;
}
void main()
{
int init_count = 0;
printf(“在现实世界\n”);
func_inception(init_count); //现实到梦境的入口点
printf(“回到现实世界\n”);
}

/*看完才知道,每个函数开头被编译器加上的那两句:
push ebp
mov ebp, esp
使得我们对在梦中还是在现实一目了然,寄存器ebp就是“图腾”,一个压栈操作足矣搞定一切喽。*/

//注:本文代码VC++ 6.0编译通过

//恩恩,都凌晨一点了,睡觉去睡觉去。