首页 励志故事 宏的参数前面的例子

宏的参数前面的例子

时间:2022-01-19 励志故事 版权反馈
【摘要】:其实,在创建宏文件时,参与运算的数值、供读写的数据文件均可用形式参数实现,这样在执行宏时通过输入实际参数,可以大大增加宏的灵活性。
宏的参数_地震学实习教程

3.5.1 宏的参数

前面的例子通过宏文件集成了一系列命令,使用户可以很方便地反复执行,但如果用户希望读取不同文件组,或者乘以其他数值时,必须修改文件。其实,在创建宏文件时,参与运算的数值、供读写的数据文件均可用形式参数实现,这样在执行宏时通过输入实际参数,可以大大增加宏的灵活性。

1.一般参数

在前面例子中,如果将文件名作为形式参数,可以写成:

READ$1$2$3

MUL 4 8 9

FFT

BG SGF

PSP AM

其中美元符号(“$”)用于定义宏文件的形式参数,$1是第一个参数,$2是第二个参数,$3是第三个参数,依次类推。在SAC2000下执行修改后的宏,键入:

u:MACRO MYSTUFF ABC DEF XYZ

此时标号“ABC”替代文件中的所有“$1”,而“DEF”和“XYZ”分别代替“$2”和

“$3”。用同一个宏处理不同文件组时,只需改变输入参数命令即可:

u:MACRO MYSTUFF AAA BBB CCC

2.关键词驱动参数

关键词驱动参数允许用户以任意次序输入参数,同时使宏文件更易理解,随着参数个数和宏文件命令的增加,这一点会变得越来越重要。修改前面的例子以便接受文件表和乘数表:$KEYS FlLES VALUES

READ$FILES

MUL$VALUES

FFT

BG SGF

PSP AM

这个简单的变化同时增加了宏文件的灵活性和可读性,第一行说明有两个关键词,其中一个叫“FILES”,另一个叫“VALUES”。执行它要输入:

u:MACRO MYSTUFF FILES ABC DEF XYZ VALUES 4 8 9

因为参数次序不再重要,你也可键入:

u:MACRO MYSTUFF VALUES 4 8 9 FILES ABC DEF XYZ

这个宏并不仅限于读取三个文件,只要输入的文件数与乘数的个数相匹配,对两个甚至10个文件,都能同样处理。

3.缺省参数值

有时在多次执行一个宏文件时,一些参数经常(但不总是)具有相同的取值。提供参数缺省值后,每次操作便不再需要反复输入相同的值,但都允许在需要时灵活修改这些值。这一点可由下面的例子得到说明:

$KEYS FILES VALUES

$DEFAULT VALUES 4 8 9

READ$FILES

MUL$VALUES

FFT

BG SGF

PSP AM

这个宏第二行特别指定了缺省值,用于置换变量“VALUES”,如果在执行行不输入其值,那么它就取其缺省值:

u:MACRO MYSTUFF FILES ABC DEF XYZ

也可使用不同参数值,例如:

u:MACRO MYSTUFF VALUES 10 12 3 FILES ABC DEF XYZ

如果在执行宏文件时忘记输入所必需的参数值,而它又没有缺省值,SAC2000将要求

在终端输入参数值。例如:

u:MACRO MYSTUFF

s:FILES?

u:ABC DEF XYZ

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈