准备从C转向Delphi的困惑:( Delphi的用户定义类型中(类似于C中的struct)存不存在边界对齐的问题(如果存在,怎样调整为紧凑模式:C的编译选项/Zp1)、能不能支持动态数组成员(如果支持,在运行时设定其大小后,该用户定义类型是否存储于连续的内存地址:即是否可以通过指向该用户定义类型的指针一次性引用所有数据成员)、Delphi中日期时间的控制范围有多大?在相同算法和运行环境的情况下,Delphi代码比C代码的执行速度慢多少? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以看一下 Delphi5 开发人员指南 里边有好多是针对由 C转到 DELPHI 的程序员的问题! Delphi的用户定义类型中(类似于C中的struct)存不存在边界对齐的问题(如果存在,怎样调整为紧凑模式:C的编译选项/Zp1)、//C里可以通过 #pragma pack(1)来控制对齐~~//delphi可以通过packed来压缩 //type TRecord = packed record X: Integer; Y: Integer; end; //另外也可以在编译环境中设置 (Project Option->Compiler)能不能支持动态数组成员(如果支持,在运行时设定其大小后,该用户定义类型是否存储于连续的内存地址:即是否可以通过指向该用户定义类型的指针一次性引用所有数据成员)、//A: array of Char; 这就是的,相当于PChar,是连续的存储 //参考SelLength()、Low()、High()等相关函数~~Delphi中日期时间的控制范围有多大?//Low(TDateTime)..High(TDateTime)在相同算法和运行环境的情况下,Delphi代码比C代码的执行速度慢多少?//Delphi编译器会做优化很多工作//不同的算法有不同的结果,自己做做测试不就知道了~~ Delphi代码+最佳的编程思路=最快的速度! 我的动态数组也是用户定义类型,不是简单类型:如例1:struct FirstStruct{ int i; long l; float f; struct SecondStruct { int i2; long l2; float f2; } MyDynaArray[];};例2:struct Struct{ int i; long l; float f; union Union { int i2; long l2; float f2[]; } MyDynaArray2[];};type SecondStruct = packed record i2: Integer; l2: Longint; f2: Single; end; FirstStruct = packed record i: Integer; l: Longint; f: Single; MyDynaArray: array of SecondStruct; end; Union = packed record case Integer of 0: (i2: Integer); 1: (l2: Longint); 2: (f2: Single); end; Struct = packed record i: Integer; l: Longint; f: Single; MyDynaArray2: array of Union; end; 问个简单问题,怎么汉字变成问号了? 枚举所有句柄时QQ自由幻想窗口句柄无法获取!!! 用程序登录服务器!急急 救命!我现在的新程序被一个月前的老程序覆盖掉了,有办法恢复吗? 一个小小小小问题? 窗口中点击一按钮时显示别外一外窗口,我写了form2.show为什么出错? 关于日期显示的问题 请问一个unit文件的执行顺序????? 请问.......简单的问题 那位大虾告诉我能不能在程序中动态创建Interbase数据库,要怎样做??? 新手提问:添加database和table控件后,table里的tableName无法设置 到底错再哪了啊?
//C里可以通过 #pragma pack(1)来控制对齐~~
//delphi可以通过packed来压缩
//type TRecord = packed record X: Integer; Y: Integer; end;
//另外也可以在编译环境中设置 (Project Option->Compiler)
能不能支持动态数组成员(如果支持,在运行时设定其大小后,该用户定义类型是否存储于连续的内存地址:即是否可以通过指向该用户定义类型的指针一次性引用所有数据成员)、
//A: array of Char; 这就是的,相当于PChar,是连续的存储
//参考SelLength()、Low()、High()等相关函数~~Delphi中日期时间的控制范围有多大?
//Low(TDateTime)..High(TDateTime)在相同算法和运行环境的情况下,Delphi代码比C代码的执行速度慢多少?
//Delphi编译器会做优化很多工作
//不同的算法有不同的结果,自己做做测试不就知道了~~
struct FirstStruct
{
int i;
long l;
float f;
struct SecondStruct
{
int i2;
long l2;
float f2;
} MyDynaArray[];
};
例2:
struct Struct
{
int i;
long l;
float f;
union Union
{
int i2;
long l2;
float f2[];
} MyDynaArray2[];
};
type
SecondStruct = packed record
i2: Integer;
l2: Longint;
f2: Single;
end;
FirstStruct = packed record
i: Integer;
l: Longint;
f: Single;
MyDynaArray: array of SecondStruct;
end; Union = packed record
case Integer of
0: (i2: Integer);
1: (l2: Longint);
2: (f2: Single);
end;
Struct = packed record
i: Integer;
l: Longint;
f: Single;
MyDynaArray2: array of Union;
end;