1)分割编译问题:
     DELPHI还不能把单个的单元进行独立的编译,这对团队开发很不方便,
同时,也希望能象C那样,能把定义和实现可以分开在不同的文件中,这样,在大型开发中就方便多了。2)局部变量不能赋初始值问题:
     既然全局变量可以赋初值,很搞不懂为何局部变量就不行了?如果我要定义一个稍多的局部二维数组,
非得一个一个地去写,真累死人呀。3)相同的数组类型不能赋值:
   比如:
var
  arr1:array [0..10] of integer;
  arr2:array [0..10] of integer;
begin
   arr1:=arr2;
end;
就通不过,要这样做才行:
type
    tarr= array [0..10] of integer;
var
   arr1:tarr;
   arr2:tarr;
begin
    arr1 := arr2;
end;类型都是一样,为何就不能直接互相赋值呢?比如arr1 := arr2 ,非得用循环再赋一次,
或者,非得要定义另外一个类型才行,这不是脱裤子放P,多次一举吗??4)相同的指针类型不能赋值:
   跟3)的数组一样,类型一模一样,也不能互相赋值,非得要另外定义,实在纳闷呀。5)我们都知道C的指针可以用数组的形式来访问,但DELPHI,就是不行,为什么不改进这点,很难吗?
  
  
6)^char 和pchar
既然用write 语句可以输出pchar 类型的字符串,为什么不能输出^char的字符串呢??
感觉BORLAND对指针问题上,有些混乱.其实我觉得根本不需要引进PCHAR,PINTEGER等类型,
直接改进^char ,^integer ,^float等类型就可以。引进P字头系列后,感觉指针的用法有些迷惑。7)多级指针问题:
  在C中,可以定义方便地定义多级指针 
比如  int **p;而DELPHI却要
type
   tpint2 = ^tpint;
   tpint = ^integer;
var
    p:tpint2;为什么不能直接写成:
type
    tpint2 = ^^integer;或者
p:^^integer呢?定义那么多类型多,使程序句繁琐多了。并且更严重的是,很多标准库,只能用规定的类型,
用定义的就是不行,即使看上去一样的类型,也不行。
比如strcopy函数等,你就得用pchar ,用^char就拉倒,还得转换成PCHAR,真太乱了.
而在C里面却那么的一致。取地址也是一样,我用了@@P等形式存取多级指针地址,就是不行,但用p^^等形式存取数据好象又可以。
奇怪呀.
总之,感觉DELPHI的指针运算有些乱。不象C那样的一致性。
8)多目运算符    希望DELPHI 能引进  += ,-=  ,/= ,*=等简写形式。
现在FREE PASCAL都可以实现这些功能,非常方便。9)文件SEEK;
我记得C好象可以用文件头向文件尾移动,也可以从文件尾向文件头移动,非常灵活,
而DELPHI只能从头向尾移动,如果在大型文件处理中,效率就可要打折扣了10) UNICODE 问题。
   一直搞不懂,BORLAND对这个问题没进展,但这个问题又是那么地重要。11)强烈要求开发其它平台的编译器
以上是我目前最希望BORLAND 能改善的问题,不知道还有哪些其它问题?各位说说??

解决方案 »

  1.   

    还是用C吧,DELPHI不适合你呀。
      

  2.   

     你是C高手,就不要来抢delphi人的饭碗了吧,现在混口饭吃不容易。
      

  3.   

    你说的好多都是小问题,不要拿C的习惯理解Pascal,这样会痛苦。
      

  4.   

    关于问题3,4:var 
      arr1,arr2:array [0..10] of integer;这样就可以了
      

  5.   

    感觉楼主是从C/C++转到Delphi开发上来的,所有很多D的东西不太喜欢(习惯)。
    不过我想过一段时间也就好了。
    不过话说回来,楼上提的一些问题其实的确是D应改进的东西。非常可惜的是Borland发了那么DELPHI都没有改进一下。
    还有的就是异常处理关键字也是比较啰嗦象:
    C#或Java里的
    try
    {
    }
    catch(Exception e)
    {
    }
    finally
    {
    }
    Delphi就必须这样:
    try
      try
      ...
      except
      ...
      end;
    finally
      ...
    end;

    try
      try
      ...
      finally
      ...
      end;
    except
      ...
    end;
    异常处理多了,感觉代码缩进得让人发晕!
      

  6.   

    1)分割编译问题: 
         DELPHI还不能把单个的单元进行独立的编译,这对团队开发很不方便, 同时,也希望能象C那样,能把定义和实现可以分开在不同的文件中,这样,在大型开发中就方便多了。 =================================================================================================
    --->谁说不行,用命令行直接编译
         定义和实现本来就是分开的,只不过是在同一个文件中的不同部分interface implementation
        分开在不同的文件中是导致C编译慢的一大原因。并且出现容易出现链接时找不到符号的麻烦。2)局部变量不能赋初始值问题: 
         既然全局变量可以赋初值,很搞不懂为何局部变量就不行了?如果我要定义一个稍多的局部二维数组, 
    非得一个一个地去写,真累死人呀。 
    ---》小问题3)相同的数组类型不能赋值: 
       比如: 
    var 
      arr1:array [0..10] of integer; 
      arr2:array [0..10] of integer; 
    begin 
       arr1:=arr2; 
    end; 
    就通不过, 要这样做才行: 
    type 
        tarr= array [0..10] of integer; 
    var 
       arr1:tarr; 
       arr2:tarr; 
    begin 
        arr1 := arr2; 
    end; 
    类型都是一样,为何就不能直接互相赋值呢?比如arr1 := arr2 ,非得用循环再赋一次, 
    或者,非得要定义另外一个类型才行,这不是脱裤子放P,多次一举吗?? 
    =================================================================================================
    ---》这本来就是不同的类型。编译通不过,你能马上知道该把上面的写法改成:arr1,arr2:array [0..10] of integer; 
         很好的体现了严谨的代码书写习惯。
          var 
          arr1:array [0..10] of integer; 
          arr2:array [0..10] of integer; 这样写代码,那才真是脱了裤子放屁呢。4)相同的指针类型不能赋值: 
       跟3)的数组一样,类型一模一样,也不能互相赋值,非得要另外定义,实在纳闷呀。
    ---》跟3)一样 5)我们都知道C的指针可以用数组的形式来访问,但DELPHI,就是不行,为什么不改进这点,很难吗? 
    ---》明明是指针,为什么非要用数组来访问?本就不该乱七八糟瞎用。要用也行,你就得写复杂点,这是代价。
         不然你就养成坏习惯了。
       
    6)^char 和pchar 
    既然用write 语句可以输出pchar 类型的字符串,为什么不能输出^char的字符串呢?? 
    感觉BORLAND对指针问题上,有些混乱.其实我觉得根本不需要引进PCHAR,PINTEGER等类型, 
    直接改进^char ,^integer ,^float等类型就可以。引进P字头系列后,感觉指针的用法有些迷惑。 
    ---》没引进什么PCHAR PINTEGER,你可以看看他们的的定义,就是^char,不过使用type定义的
         所以和^char不是同一类型。随便作个强制转换就等同了。7)多级指针问题: 
      在C中,可以定义方便地定义多级指针  
    比如  int **p; 而DELPHI却要 
    type 
       tpint2 = ^tpint; 
       tpint = ^integer; 
    var 
        p:tpint2; 为什么不能直接写成: 
    type 
        tpint2 = ^^integer; 或者 
    p:^^integer呢? 定义那么多类型多,使程序句繁琐多了。并且更严重的是,很多标准库,只能用规定的类型, 
    用定义的就是不行,即使看上去一样的类型,也不行。 
    比如strcopy函数等,你就得用pchar ,用^char就拉倒,还得转换成PCHAR,真太乱了. 
    而在C里面却那么的一致。 取地址也是一样,我用了@@P等形式存取多级指针地址,就是不行,但用p^^等形式存取数据好象又可以。 
    奇怪呀. 
    总之,感觉DELPHI的指针运算有些乱。不象C那样的一致性。 ---》一致?搞笑了吧。
         #define PChar char *
         #define MYCharP char *
        #define XXCHAR char *
        ...
       突然某个地方冒出个XXXYYYCHAR,不看头文件中的define,谁知道它就是char *,超乱。8)多目运算符     希望DELPHI 能引进  += ,-=  ,/= ,*=等简写形式。 
    现在FREE PASCAL都可以实现这些功能,非常方便。 --->没感觉就特别方面了多少9)文件SEEK; 
    我记得C好象可以用文件头向文件尾移动,也可以从文件尾向文件头移动,非常灵活, 
    而DELPHI只能从头向尾移动,如果在大型文件处理中,效率就可要打折扣了 ---》你先搞搞清楚再说这句话。“而DELPHI只能从头向尾移动”???????10) UNICODE 问题。 
       一直搞不懂,BORLAND对这个问题没进展,但这个问题又是那么地重要。 
    ---》没错,这是个问题。11)强烈要求开发其它平台的编译器 
    ---》别强求,似乎没有在Linux下使用的VC吧。C不是近一家公司在做它的编译器。以上是我目前最希望BORLAND 能改善的问题,不知道还有哪些其它问题?各位说说?? 
      

  7.   

    11)强烈要求开发其它平台的编译器 能支持的都支持了,还要开发基于什么平台的编译器?
    最起码不象.net,要是真正跨平台那才牛比
      

  8.   

    C和Delphi都一样用的,不过是语法上的差异而已
    不过Delphi是严格的结构化语言,对类型匹配那些要求严格的
      

  9.   

    其实都一个样,刚开学我学DELPHI,也喜欢拿PASCAL 和C++语法对比,后来慢慢习惯,其实都一样的,不过C++的语法有些在DELPHI 确实没办法弄,比如共有继承,私有继承,
      

  10.   

    楼主提的都是小问题,习惯就好。
    PASCAL是强类型语言,不同C。两种都是优秀的语言。
      

  11.   

    我从VC转过来过三年了.经常对数组看起来难受.但DELPHI VCL太帅了.  开发的源码更加爽.兄弟多习惯他.你说的问题大部分D本身有解决的方案,可是你还没找到.
      

  12.   

    发现还是Delphi论坛的人思想比较开明,如果是在其它论坛早就骂开锅了。
      

  13.   

    我一直不喜欢C语言的头文件以及它的#include语句~~~
      

  14.   

    如果你能把一种语言用到你认为她满足不了你的需求,用到淋漓尽致的地步,那么你就没有必要来挑剔语言了,直接拓展她的VCL库好了,可以让她拥有原来不曾拥有的功能。
    不支持Unicode,但她支持widestring啊,有人用她做出了支持Unicode的VCL控件。