虚拟宏在SAS中的含义

时间:2014-09-24 10:53:22

标签: macros sas

我在一开始就继承了一些宏,定下了以下几行:

%macro dummy; %mend dummy;

这个宏在任何地方都没有特殊的调用,我不明白它的意思......

2 个答案:

答案 0 :(得分:4)

宏没有“意义”。它只是一个宏的声明,不包含任何代码。因此,当你运行它时没有任何反应。

但是,可能是尝试清除以前定义的名为dummy的宏,以避免意外执行此操作。

更正确的清除方法(或在此情况下删除)将使用(在SAS 9.3及更高版本中运行):

%SYSMACDELETE dummy;

这样,如果你要执行一个名为dummy的宏,你会得到一个错误,即这个宏不存在。如果您在示例中清空了宏的内容,则不会出现此错误。

答案 1 :(得分:0)

如果代码打算在Enterprise Guide中使用,虚拟宏定义在另一个(真实)宏定义中,那么它可能是一个强制语法突出显示的黑客。

例如:

%macro real;
    /* Some sas code but without syntax highlighting */
%mend real;

可是:

%macro real;
    /* Some sas code but without sintax highlighting */ 
    %macro dummy; %mend dummy;
    /* Some sas code with syntax highlighting */
%mend real;

似乎是重新启用突出显示的%mend