🎨 style(markdown): format markdown files
This commit is contained in:
@@ -160,6 +160,7 @@ begin
|
||||
return a + b;
|
||||
end;
|
||||
```
|
||||
|
||||
这样运行的结果和上边的一摸一样,TSL 用 in 或者 const 表示送入的为值(形参),而用 out 或者 var 表示送入的为引用(实参)。
|
||||
|
||||
既然上边说到了 TSL 语言默认都是实参,为什么还多此一举加入了 out,var 前缀呢?
|
||||
@@ -251,6 +252,7 @@ b := 3;
|
||||
```
|
||||
|
||||
结果:由于 b 未声明,`b := 3` 处会报错。
|
||||
|
||||
#### 函数返回以及退出
|
||||
|
||||
return
|
||||
@@ -266,6 +268,7 @@ EXIT
|
||||
```tsl
|
||||
定义:FunctionName([a, [b, [c ...]]] ...);
|
||||
```
|
||||
|
||||
其中,a,b,c,表示已定义的参数,...表示不定个数的参数,不限个数,在调用时进行定义。
|
||||
|
||||
即支持定义如:FuncA(a,b,...)、FuncA(...)等。
|
||||
@@ -642,6 +645,7 @@ begin
|
||||
echo ##fun(5, 6);
|
||||
end;
|
||||
```
|
||||
|
||||
注:匿名函数也可以直接在函数参数中直接定义。
|
||||
|
||||
例如:
|
||||
@@ -652,6 +656,7 @@ begin
|
||||
return x + y;
|
||||
end);
|
||||
```
|
||||
|
||||
### ##匿名函数以及函数指针的调用
|
||||
|
||||
#### A(1,2)代表 A 的类型是一个匿名函数或者函数指针类型,调用这个匿名函数或者函数指针代表的函数,送入 1,2 两个参数。
|
||||
@@ -661,6 +666,7 @@ A(1,2)则表示 A 是一个名字为 A 的函数。
|
||||
```tsl
|
||||
B := FindFunction("A"); // FindFunction 可以查找函数并返回该函数的指针。
|
||||
```
|
||||
|
||||
## B(1,2)的运行过程等同于 A(1,2)
|
||||
|
||||
### ::指定调用全局函/单元函数
|
||||
@@ -738,6 +744,7 @@ TSL 调用动态库的函数申明基本与 PASCAL 的申明方式相同。
|
||||
function GetTickCount():Integer; stdcall; external"kernel32.dll"name
|
||||
"GetTickCount"KeepResident;
|
||||
```
|
||||
|
||||
Stdcall:是调用方式,对于操作系统库基本是 STDCALL,而 C++开发的动态库则是 CDECL,
|
||||
|
||||
External:后接包含动态库名称的常量,也可以包含完整路径(应注意\的转义)
|
||||
@@ -783,9 +790,11 @@ TSL 调用外部函数指针
|
||||
##### TSL 调用外部动态库的函数
|
||||
|
||||
语法:Function newFuncName(p1:DataType;p2:Datetype;…):returnType;external
|
||||
|
||||
```tsl
|
||||
FuncDLL name FuncName;
|
||||
```
|
||||
|
||||
其中,多个参数用;隔开,注意每个参数的参数类型要与原函数对应
|
||||
|
||||
returnType:是函数返回结果数据类型
|
||||
@@ -816,6 +825,7 @@ function TSstrtofloat(s:string):double;external"tslkrnl.dll"name"TS_strtofloat";
|
||||
TSLfunPointer := function(p1:DataType;p2:Datetype;…):return type;external
|
||||
funcPointer;
|
||||
```
|
||||
|
||||
其中,funcPointer 为外部函数指针,TSLfunPointer 为返回结果,即为天软函数指针。
|
||||
|
||||
范例:
|
||||
@@ -858,12 +868,14 @@ Windows 的 API 使用 stdcall 模式。
|
||||
function TS_strtofloat(s:string):double;external"tslkrnl.dll"name
|
||||
"TS_strtofloat";
|
||||
```
|
||||
|
||||
等同于:
|
||||
|
||||
```tsl
|
||||
function TS_strtofloat(s:string):double;cdecl;external"tslkrnl.dll"name
|
||||
"TS_strtofloat";
|
||||
```
|
||||
|
||||
除了 Win32 以外,每种 CPU 架构下只有一套标准调用模式,不需考虑是 stdcall 还是 cdecl。目前只有 Win32 还需要考虑调用方式的申明。
|
||||
|
||||
##### 申明函数时使用常量/常量计算结果指定动态库名称
|
||||
|
||||
Reference in New Issue
Block a user