c语言转换成delphi程序语言
1,指针
int *ptr;
char *ptr;
var
ptr:^Integer;
ptr:^char;
2,无类型指针的定义
c
void *ptr;
delphi:
ptr:Pointer
3,取值:
c
(*ptr)
delphi
ptr^
4,取地址
c
ptr=&Object;
delphi
ptr:=@Object
5,指针运算
c
char a[20];
char *ptr=a;
ptr++;
ptr+=2;
delphi
var
a:array[1..20] of char;
ptr:Pchar;//ptr:^char;
begin
ptr:=@a;
inc(ptr)
inc(ptr,2);
end;
6,动态内存分配
c
int *ptr,*ptr2;
int i;
ptr=(int*)malloc(sizeof(int)*20);
ptr2=ptr;
for(i=0;i<20;i++){
*ptr=i;
ptr++;
}
free(ptr2)
delphi
var ptr,ptr2:^integer;
i:integer;
begin
GetMem(ptr,sizeof(integer)*20);
ptr2:=ptr;
for i:=0 to 19 do
begin
ptr^:=i;
inc(ptr);
end;
FreeMem(ptr2);
end;
7,字符数组运算
c
char str[15];
char *pstr;
strcpy(str,"teststr");
strcat(str,"_testok");
pstr=(char*)malloc(sizeof(char)*15);
strcpy(pstr,str);
print(pstr);
free(pstr);
delphi
var str:array[1..15]of char;
pstr:Pchar;
begin
strcopy(@str,'teststr');
strcat(@str,'_testok');
getmem(pstr,sizeof(char)*15);
strcpy(pstr,@str);
write(pstr)
freemem(pstr);
end;
8,函数指针
c
typedef int (*PVFN)(int)
int main(){
HMODULE hModule=LoadLibrary("test.dll");
PVFN pvfn=NULL;
pvfn=(PVFN)GetProcAddress(hModule,"Function1");
pvfn(2);
FreeLibrary(hModule);
}
delphi
type PVFN=function(para:Integer):integer
var
fn:PVFN;
hm:HMODULE;
begin
hm:=LoadLibrary('test.dll');
fn:=GetProcAddress(hm,'Function1');
fn(2);
FreeLibrary(hm);
end;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?