当前位置: 代码迷 >> C语言 >> [TC使用者之专帖]共同探讨C之惑
  详细解决方案

[TC使用者之专帖]共同探讨C之惑

热度:234   发布时间:2008-01-31 12:33:53.0
[TC使用者之专帖]共同探讨C之惑
尽已所能,倾吾之囊。

此贴有效期为一个月,所有在3月1日之前在此贴所提的问题,本人愿意与各位共同探讨。
搜索更多相关的解决方案: 使用者  探讨  

----------------解决方案--------------------------------------------------------
我想调用windows的API函数怎么办?
还有要写32位的程序又怎么办?
----------------解决方案--------------------------------------------------------
要解决以上两问题请换32位编译器
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
TC有64位整数吗?
如果要开1000,000个元素的数组怎么办?
----------------解决方案--------------------------------------------------------
tc编译的程序运行速度比vc慢很多怎么办?
tc编译的程序不能管理稍大一点的内存空间怎么办?

以后的操作系统对dos程序的兼容性会越来越差,vista就是例子,要用tc是不是要装一个dos系统再运行tc ?
----------------解决方案--------------------------------------------------------
TC有64位整数吗?
//所谓64位处理器就是一次只能处理64位,也就是8个字节的数据。如果我们将总长128位的指令分别按照16位、32位、64位为单位进行编辑的话:旧的16位处理器,比如Intel 80286 CPU需要8个指令,32位的处理器需要4个指令,而64位处理器则只要两个指令,显然,在工作频率相同的情况下,64位处理器的处理速度会比16位、32位的更快。而且除了运算能力之外,与32位处理器相比,64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,而64位处理器的一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。TC编译器是16位操作系统下的产物,它不可能写32位、64位的程序。任何编译器都有其不同的局限性,VC,BCB,GCC也如此。
还有,我不想讨论16位、32位编译器的优劣或C语言、VB、C#、JAVA的优劣如此等等“BC”问题
如果要开1000,000个元素的数组怎么办?
这种问题讨论无毫意义,VC要开1000,000,000,000,000个元素的数组怎么办?
解决办法:可以采用类似内存映射技术,说明白了就是建一文件当内存用
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]VxWorks[/un] 在 2008-1-31 13:45 的发言:[/bo]

tc编译的程序运行速度比vc慢很多怎么办?
tc编译的程序不能管理稍大一点的内存空间怎么办?

以后的操作系统对dos程序的兼容性会越来越差,vista就是例子,要用tc是不是要装一个dos系统再运行tc ? ...

tc编译的程序运行速度比vc慢很多怎么办?
//请用VC
tc编译的程序不能管理稍大一点的内存空间怎么办?
//上面回复了
以后的操作系统对dos程序的兼容性会越来越差,vista就是例子,要用tc是不是要装一个dos系统再运行tc ?
//此贴不推荐不强求任何人使用TC,TC肯定有朝一日会退人们的视野。
----------------解决方案--------------------------------------------------------
既然上面几位提到了TC使用64K以上内存问题,我就给一个简单例程:
#include<malloc.h>
int main()
{
      long int   i;

      int   huge   *Huge;


      Huge=(int   huge   *)farcalloc(200000L,sizeof(int));

      for(i=0;i<200000L;Huge[i++]=5);
      for(i=0;i<200000L;i++)printf("Huge[%ld]=%d    ",i,Huge[i]);     

      getch();
      return 0;
}
----------------解决方案--------------------------------------------------------
请用大模式编译
----------------解决方案--------------------------------------------------------
  相关解决方案