所谓宏,就是一些命令组织在一块儿,做为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一块儿做为一独立的命令使用的一系列word命令,它能使平常工做变得更容易”。Word使用宏语言Visual Basic将宏做为一系列指令来编写。 计算机科学里的宏是一种抽象的,根据一系列预约义的规则替换必定的文本模式。Excel办公软件自动集成了“VBA”高级程序语言,用此语言编制出的程序就叫“宏”。使用“VBA”须要有必定的编程基础,而且还会耗费大量的时间,所以,绝大多数的使用者仅使用了Excel的通常制表功能,不多使用到“VBA”。 解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展的工具常被称为宏展开器。宏这一术语也经常被用于许多相似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数状况下,“宏”这个词的使用暗示着将小命令或动做转化为一系列指令。 宏的用途在于自动化频繁使用的序列或者是得到一种更强大的抽象能力--但这经常是一回事。 计算机语言如C或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C的宏预处理器的工做只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C 程序员能够得到更精巧的宏。 Lisp类语言如Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,而且能够应用所有语言来表达这种变形。一个C宏能够定义一段语法的替换,然而一个Lisp的宏却能够控制一节代码的计算。得到了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新建立的语法结构与语言内建的语法结构不可区分。例如,一种Lisp 方言有 cond 而没有if ,就可使用宏由前者定义后者。Lisp 语法的去部主要扩展,好比面向对象的CLOS 系统,能够由宏来定义。程序员