procedure TDaemonThread.ReadRecord(var Buf; BufSize : integer);
这是函数声明
ReadRecord(RecvBuf,Sizeof(RecvBuf));   
这是函数调用
RecvBuf是一个record类型
请问(var Buf; BufSize : integer)中的Buf是什么类型的?是Integer?
是不是record类型只是一个指针,而指针存的是整数?

解决方案 »

  1.   

    该死的Borland,学C/C++的一看以为Buf是指针,实际确是个不确定类型的变量,后面的BufSize就是该变量的类型的大小。
    以TStream .Read方法为例:
    var
    buf: integer;
    Point: TPoint;
    Rect: TRect;
    aStream: aStream;
    ...aStream.Read(buf,Sizeof(Integer));
    aStream.Read(Point,Sizeof(TPoint));
    aStream.Read(Rect,Sizeof(TRect));当然也可以是指针,此时BufSize应为4吧,指针是32位大小的。