1、一个控制台程序
program Greeting;
{$APPTYPE CONSOLE}
var MyMessage:string;
vegin
MyMessage := 'Hello World!';
Writeln(MyMessage);
end.

Save to GREETING.PAS or GREETING.DPR

win DCC32 Greeting
linux dcc Greeting

2、Unit框架和语法

unit Unit1;

Interface

uses

implementation

uses

initialization

finalization

end.

3、uses顺序产生的问题
该顺序决定了initialization部分的程序代码执行的顺序,finalization则和initialization相反。如果两个单元有同名对象,则起作用的是Uses中比较后面一个。

4、符号
(. 相当于[
.) 相当于]
(* 相当于{
*) 相当于}

%,?,\,!,”,_,|,~并非特殊符号

@var 表示变量var的地址
P^表示指针取值

{$B+}完整演算{$B-}快捷演算(默认)
如果操作数包含变量则总是完整演算
Compiler Option->complete Boolean Evaluation为该选项

暗示指示符
platform 指示平台
deprecated 指示陈旧
library 依赖特殊库文件或者组件

5、语法点
Lable aaa;
Goto aaa;

if exp1 then
 if exp2 then
  s1
 else
  s2;
相当于
if exp1 then
begin
 if exp2 then
  s1
 else
  s2
end;

6、数据类型
序数
ord 顺序pred 前驱succ 后续inc 增加dec 减少
枚举
type size=(small=5,medium=10,large=small+medium);//size包括了5~15共11个值 array[size] of char有11个数
type SomeEnum=(e1,e2,e3=1);//ord(e1)=0 ord(e2)=1 ord(e3)=1,没有赋值的序数都大于排在他前面的值

压缩的数据存储
type Tmunbers = packed array[1..100] of real;
packed会影响速度,对字节数组会影响兼容性

集合
属于结构化类型,定义在序数类型基础上
type TASet = set of 1..250

记录
属于结构化类型
可变的record
type TEmployee = record
FirstName,LaseName:string[40];
case Salaried:boolean of
 true:(AnnualSalary:currency);
 false:(HourlyWage:currency);
end;

指针
^typeName 代表 指向typeName的指针 类型。
Pointer^ 代表pointer指向地址处的内容
指针相关函数new GetMem Addr Ptr

{$T+}@只能得到^T的指针
{$T-}无类型指针模式,所有指针兼容

标准的指针 system、SysUtils中
PAnsiString、PString
PByteArray
PCurrency、Pdouble、Pextended、Psingle
PInteger
POleVariant
PShortString
PtextBuf
PvarRec
Pvariant
PWideString
PwordArray

var
 F:function(X:Integer):Integer;
Function SF(X:Integer):Integer;

F:=SF;//函数赋值
if F=SF then//比较结果
if @F=@SF then//比较过程
@F将F转换为无类型指针变量
@SF返回SF的地址