Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

版权申明
查看: 6024|回复: 0

Free Pascal相对于Turbo Pascal的扩充

[复制链接]

该用户从未签到

发表于 2010-1-6 23:13:14 | 显示全部楼层 |阅读模式
1. 函数可以返回复杂的类型,比如记录和数组。
  2. 在函数中,函数的返回值通常可以作为一个变量来处理。比如:
  function a : longint;
  begin
  a:=12;
  while a>4 do
  begin
  {...}
  end;
  end;
  这个例子在Turbo Pascal中,a>4会被认为是函数的递归调用,但是在Free Pascal中会认为a只是一个变量。如果想在Free Pascal中实现递归调用,就要写成下面的形式:
  function a : longint;
  begin
  a:=12;
  { this is the recursive call }
  if a()>4 then
  begin
  {...}
  end;
  end;
  3. exit可以接受一个参数作为函数的返回值。比如:
  function a : longint;
  begin
  a:=12;
  if a>4 then
  begin
  exit(a*67); {函数的返回值就是a*67 }
  end;
  end;
  4. Free Pascal支持函数重载。可以用相同的名字定义不同的函数,只要这些函数的参数不同,就是不同的函数。比如:
  procedure DoSomething (a : longint);
  begin
  {...}
  end;
  procedure DoSomething (a : real);
  begin
  {...}
  end;
  可以使用不同的参数类型longint或者real来调用不同的DoSomething过程。
  由于这个功能,函数的提前声明必须有完整的参数声明:
  procedure x (v : longint) : forward;
  {...}
  procedure x;{ 这里定义的过程x重载了前面声明的过程x。因此这里的两个x是不同的}
  begin
  {...}
  end;
  5. Free Pascal容许运算符重载。比如,可以自己为矩阵运算定义一个“+”运算。
  6. Free Pascal在windows 95及其以上的windows版本上支持长文件名。对于文件名,由于windows系统对大小写不敏感,因此在程序中,文件名的大小写是无关的。但是对于其它大小写敏感的系统,比如linux,程序中用到的文件名必须和系统中的文件名完全一致。但是由于信息学竞赛的评测系统一般是linux,因此要求程序中的文件名和系统中的文件名一样。
回复

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 23:40 , Processed in 0.025177 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表