b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

pascal 视频教程_pascal和basic_pascal选择排序(58)

电脑杂谈  发布时间:2016-12-28 07:02:37  来源:网络整理

声明双重接口的方法必须使用safecall;保留pascal调用是为了向后兼容性。要了解更多的调用约定的信息,请参考Program control。

指示字near、far和export用在16位Windows编程中,它们对32位程序没有影响,保留它们是为了向后兼容性。

Forward and intece declarations(Forward声明和接口部分的声明)

在声明过程或函数时,用forward指示字取代例程块(包括局部变量声明和语句),比如,

function Calculate(X, Y: Integer): Real; forward;

这就声明了一个叫做Calculate的函数,在forward声明后的某个地方,例程必须进行定义声明,包括例程块。Calculate的定义声明看起来这样:

function Calculate;

... { declarations }

begin

... { statement block }

end;

- 82 -

Procedures and functions

通常,定义声明不必重新列出例程使用的参数或者返回值类型,但如果这样做的话,它必须和forward声明完全一致(除了默认参数能被忽略)。若forward声明是一个重载的过程或函数,则必须在定义声明中重新列出它的参数。

在forward声明和它的定义声明之间,除了声明外不能有其它内容。定义声明可以是external或assembler,但不能是另外的forward声明。

forward声明的目的是把过程或函数标志符的作用域提前,这允许在它被实际定义之前,其它过程和函数可以进行调用。除了能使你更灵活地组织代码外,forward声明对相互递归调用(mutual recursion)有时是必须的。

在单元的接口(intece)部分,forward指示字是不允许的,但是,接口部分的过程头或函数头,它们的行为就像forward声明,它们的定义声明必须出现在实现(implementation)部分。在单元的接口部分声明的例程,在本单元的其它任何位置都可以访问;对于使用本单元的其它单元或程序,这些例程也是可以访问的。

External declarations(External声明)

在声明过程或函数时,用external指示字取代例程块,能允许你调用和程序分开编译的例程。外部例程可以来自目标文件或动态调入库(dynamically loadable library)。

当导入一个带有可变数目参数的C++函数时,要使用varargs指示字。比如,

function printf(Format: PChar): Integer; cdecl; varargs;

varargs指示字只能用于外部例程,并且只能使用cdecl调用约定。

链接目标文件

要调用目标文件中的例程,首先要使用$L(或$LINK)编译器指示字把目标文件链接到你的程序中。比如,

在Windows下: {$L BLOCK.O}

在Linux下: {$L block.o}

把BLOCK.O(Windows)或block.o (Linux)链接到程序或它所在的单元。然后,声明你想调用的函数和过程:

procedure MoveWord(var Source, Dest; Count: Integer); external;

procedure FillWord(var Dest; Data: Integer; Count: Integer); external;


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-58.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 薛业
      薛业

      没真正打过不知道自己有多少毛病

    热点图片
    拼命载入中...