函数和过程的保留字都有哪些?比如:register什么的,都有什么作用?

jiangqiu 2003-09-03 01:36:28
函数和过程的保留字都有哪些?比如:register什么的,都有什么作用?
...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrameSniper 2003-09-03
  • 打赏
  • 举报
回复
对,还有个Forward!
FrameSniper 2003-09-03
  • 打赏
  • 举报
回复
Register是Delphi里面默认的过程或函数的调用约定,指明参数在什么地方存放,已经放入顺序,以及最后由谁来清空栈空间!

函数或过程的关键字除了上面说的这些(上面提到的Assembler应该不属于函数过程申明时使用的关键字,而且应该是asm而不是assembler),还有:

override 覆盖,实现多态

overload 重载,实现同名函数或过程

reintroduce 重新引入,实现对父类定义代码的放弃

yk_xiong 2003-09-03
  • 打赏
  • 举报
回复
建议你看看Delphi帮助中的下列主题
Virtual and dynamic methods
Overloading methods
Calling conventions
Forward and interface declarations
External declarations
yk_xiong 2003-09-03
  • 打赏
  • 举报
回复
参数调用方式:
Register:
这个方式采用寄存器调用约定来传递参数,这是缺省的方式。

Pascal:
这种方式采用Pascal调用约定来传递参数,也就是采用栈传递的方式,传递次序从左到右,这种方式适用于调用动态链接库(DLL)中的例程,而这些例程是用其它语言编写的如C,C++。

Cdecl:
这种方式采用C/C++的调用约定,参数从右到左依次传递到栈中。这种方式适用于调用动态链接库中输出的例程,这些例程一般是C/C++写的。

StdCall:
这种方式采用Windows的标准调用约定来传递参数,传递次序从右到左,这种方式适用于调用Windows的API。

指示字:
assembler:
这个指示字表示过程或函数是用嵌入式汇编语言编写的。用了这个指示字后,编译器对参数的处理作了一些优化

External:
这个指示字适用于从DLL中导入过程或函数,表明过程或函数是外部的。

Forward :
一般情况下,当您调用一个过程或函数时,被调用的过程或函数必须是在Type区已声明的,不过使用Forward指示字可以让编译器向前查找过程或函数的定义。
fhuibo 2003-09-03
  • 打赏
  • 举报
回复
function a: string;

result

procedure
jiangqiu 2003-09-03
  • 打赏
  • 举报
回复
我可能记的不是很清楚,大概就是这个意思:fuction a();export;其中export是用在DLL中说明是输出函数,可以动态调用(我说的没错吧),还有其他的呢?我忘了在哪里看到的了,好象是还有什么register,cover还有别的记的不是很清了

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧