在两台WIN98下,为什么以下代码用Turboc2.0和VC++6.0编译后,程序执行的速度不同(用VC++编的要比用C编的慢十几倍,同时用C编写的程序在第一次的运行时间要比以后运行时间慢),能否将VC++下程序的执行速度提高到C下的执行速度?
#include "io.h"
#include "fcntl.h" int a=0,b;
 int handle;
 char workbufs[4096];
 DWORD dr;
 
 handle = open("H:\\20020101\\01izm146.ndx",O_RDONLY|O_BINARY);
/*注:H:\\20020101\\01izm146.ndx为另一台WIN98上的一个文件*/
 for(a;a<30000;a++)
 { 
  b=read(handle,workbufs,4096);  
 };
/*以上程序用于读取远程文件.*/
/*注:WIN98访问WIN98有这个问题,WIN98访问WIN2000不存在这个问题,如果是访问本地文件也不存在这个问题(包括WIN98访问WIN98和WIN98访问WIN2000)*/

解决方案 »

  1.   

    编译时选上:
    __fastcall 和 Maximine Speed ,并使用Release版
    试试看?
      

  2.   

    /*以上程序用于读取远程文件.*/
    /*注:WIN98访问WIN98有这个问题,WIN98访问WIN2000不存在这个问题,如果是访问本地文件也不存在这个问题(包括WIN98访问WIN98和WIN98访问WIN2000)*/不好意思,上面这段话没看仔细,这应该不是VC或C的问题,而是网络的问题
    一起关注!!!
      

  3.   

    如果是网络问题,那TC下WIN98访问WIN98的问题速度也应该慢,但事实没有。
    在我看来,TC中的READ函数调用的是16位的API函数,而VC中的函数调用的是32位的API函数。