TC2.0编译下,数组过大问题
查了好多方法,都提示说TC2.0下不能大于64K,我又下载了TC3.0而编译时还是提示数组过大。我现在就是想用一个大的数组,难不成非要使用DJGPP?
各位谁用过这个?
我也只是想定义这个大数组,
double arr[865536];
在DOS下编程的伤不起啊。
提问者:60user180
地点:-
浏览次数:6638
提问时间:05-18 09:26
我有更好的答案
- 13条回答
-
60user137
05-20 09:28
http://topic.csdn.net/u/20080121/12/d948c848-8d25-433e-94f0-24912519f30e.html
http://topic.csdn.net/t/20020702/19/844896.html
-
wyerywsfsf
05-26 08:15
DOS 下就别指望了, 这是硬件的限制导致编译器作出了限制。 要么用 vc, bc, 要么使用分段。
-
leopard530
05-22 03:27
也考虑过不过VC和BC不支持interrupt关键字啊。
是在DOS下运行的程序,想使用串口接收中断。
我试下DJGPP看看怎么用。
-
骑猪去天山
05-25 07:10
就串口那龟爬速度……如果只是为了用interrupt来处理串口,用VC,随便下载个基于对话框的串口助手程序,在上面改改用吧
-
爱雪爱雪
05-26 19:03
我用的PC\104装的是DOS6.22,现在需要用DOS下程序。。。。。。
-
香港快捷电路科技有限公司
05-24 15:22
VC可以编写中断服务程序的。其实这个不是由VC来实现,是WINDOWS本身已经实现的。
-
sagsdc
05-18 16:52
windows的串口本身就是基于中断服务程序实现的,你在windows下的查询,是查串口缓冲的数据,不影响串口的响应。
-
60user94
05-18 12:08
倒是你可以TC写的代码运行在保护模式下,这时内存就不用限制在64k了,缺点是内存管理得自己来做。
也可以使用DPMI编程。
-
想再看钻石冰尘
05-25 11:29
需要帮助啊。。。。。。
-
khgsf
05-19 22:23
为什么不用win32/linux平台,而非要DOS平台。dos运行在保护模式,就是裸奔!代价高昂。
-
cdkjwdjqw
05-23 22:33
开始定方案的时候,也注意到了TC是16位的问题,现在才发现挺难解决的。
-
iettke
05-18 11:35
还在纠结这个问题?
DOS使用了实地址模式, 索引寄存器是 16 bit, 所以数组访问一般不会超过 64 K, 除非编译器降低效率特别处理, 基本上没有编译器会这么干, 因为程序员总是有方法不使用大数组。 你可以使用farmalloc() 分配一个大堆, 然后使用 far 指针处理。 far 指针(segment:offset)可以访问任何内存地址。
另外, Borland C++ 支持interrupt.
-
like谢雨
05-20 08:54
即使是VC或者C++Builder,都不建议使用大数组