----------------解决方案--------------------------------------------------------
如果你用的是80386之前的CPU和Windows3.x或更早的操作系统,指针是16位的,地址总线是20位的,使用指针直接访问的内存是2的16次方就是64K,要越段访问就要修改段寄存器,段寄存器加指针也只能访问2的20次方就是1M,这也是处理器可以使用内存的上限。这种系统下的C程序指针如果要越段访问就要加far修饰符提示要修改段寄存器。
不过处理器早已从386,486,奔腾I,....P4到现在的眩龙64位了,PC机的操作系统最差也是32位的,WIN32给每个程序4GB的空间,只有一种内存模式,即 FLAT 模式,意思是"平坦"的内存模式,再没有 64K 的段大小限制,所有的 WIN32 的应用程序运行在一个连续、平坦、巨大的 4GB 的空间中。
如果有人还在用8086跑DOS或Windows3.x,使用TC编程,你应该是世界上最可怜的人了,因为你过着上世纪90年代中期以前的生活。我现在用来做玩具的凌阳的单片机都是16位的,明年就玩32位的ARM单片机了,现在的PC是AMD3200+跑WINXP SP2和Ubuntu6.06LTS,编译器是VS2003.NET和GCC4.0,和用TC的有10年以上差距了(从WIN95以前到07年)。
----------------解决方案--------------------------------------------------------
某某和某某两人跑题了~~~
都是高手,高手发展方向和方式不同,就不要争辩了。
世界为什么这么丰富多彩,就是因为个体之间的差异性。所以,你的王道也好,他的王道也好,只要自己喜欢就好了~~~
为了不跑题,我要对楼主说一句话:这个问题问得好!!!
漂亮~~~
----------------解决方案--------------------------------------------------------