函数定义 在宏里有且只有一个主函数,其他的都叫子函数。使用子函数可以有效的减少循环命令的代码,子函数必须在使用前被定义,且可以使用任何变量和语句类型。在主函数中,将子函数的参数放置在子函数名称后面的圆括号中,即可调用子函数。子函数被执行后,将执行后的结果返回到主函数需要的赋值语句或者条件中。主函数在创建一个宏时已为我们创建好,格式已固定,那子函数如何定义? 函数标准定义格式为 sub 函数返回类型 函数名(函数参数) 函数体实现部分 return 返回值 end sub 例如: sub intAdd(int x, int y) //定义一个子函数,返回类型为int,参数有两个为intx,inty int result result = x +y return result //函数返回值,类型需与函数返回类型一致 end sub macro_command main() int a = 10, b = 20, sum sum = Add(a, b) //在主函数中调用子函数,子函数返回的结果赋值给sum变量 end macro_command 或: sub int Add() int result, x=10,y=20 result = x +y return result end sub macro_command main() int sum sum = Add() end macro_command 当不需要返回值时,子函数可作如下定义: sub <函数名称> [(parameters)] Local variable declarations [Statements] end sub 举例: sub Add(int x, int y) //定义无返回值的子函数,参数有两为int x,int y int result result = x +y end sub macro_command main() int a = 10, b = 20 Add(a, b) //在主函数中调用子函数 end macro_command 或: sub Add() int result, x=10, y=20 result = x +y end sub macro_command main() Add() end macro_command 语法描述 sub 必须用在该子函数的开始部分。 ------------------------------------------------------------------------------------------------------------------------------------- type 可选。用来定义子函数执行后返回的数据类型。子函数也可以不回传任何值。 ------------------------------------------------------------------------------------------------------------------------------------- (parameters) 可选。这些参数保留了从主函数传入的数值。这些被传入的参数必须使用与在 参数变量声明的类型一致。 举例: sub int MyFunction(int x, int y). x 和 y 必须为从主函数中传过来 的双整型数据格式的数据。调用此子函数的语句格式大致为这样: ret = MyFunction(456, pressure),其中 pressure 需为双整型数据格式方 符合子函数参数变量的声明。 请注意调用语句的参数部分可以是常数也可以是变量。当执行这个子函数后, 一个双整型数据将会返回给变量 “ret”。 ------------------------------------------------------------------------------------------------------------------------------------- [return [value]] 可选。用来将执行的结果返回给调用语句。这个结果可以是一个常数或者变量。返回后同时也结束了子函数的执行。子函数也可以不回传任何值,但是当 type 部分有定义时,则必须加上此 return 叙述。 ------------------------------------------------------------------------------------------------------------------------------------- end sub 必须的。用来结束子函数。
|