首页 / 百科 / 宏

分类: 电子工程
属性: 技术
最后修改时间: 2017年04月13日
本词条对我有帮助0
计算机科学里的宏(Macro),是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。

什么是宏

  所谓宏,就是一些命令组织在一起,作为一个单独命令完成一个特定任务。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 系统,可以由宏来定义。

宏的典型应用

  加速日常编辑和格式设置 组合多个命令 使对话框中的选项更易于访问 使一系列复杂的任务自动执行

  应用程序也可以使用一种和宏类似机理的系统来允许用户将一系列(一般是最常使用到的操作)自定义为一个步骤。也就是用户执行一系列操作,并且让应用程序来“记住”这些操作以及顺序。更高级的用户可以通过内建的宏编程来直接使用那些应用程序的功能。当使用一种不熟悉的宏语言来编程时,比较有效的方法就是记录用户希望得到的一连串操作,然后通过阅读应用程序记录下来的宏文件来理解宏命令的结构组成。

宏编程介绍

  在用一种不熟悉的宏语言进行宏编程时,可以这样做,首先记录下用户想要宏完成什么,然后打开宏文件并尝试理解命令结构如何工作。也可以修改命令以调整宏。一些宏语言,比如Great Plains账务(accounting)软件的 Dexterity 运行时引擎,不能从其它数据源(如由逗号分隔的文本文件)导入数据。这一限制可以通过用更强大的编程语言,如 VBA 来创建一个计算机程序在此弱编程语言里生成一个特别的宏来解决。例如,可以对 Microsoft Excel 宏编程从扩展样式表或文本文件中读取数据并创建 Great Plains .mac 文件,这一文件被用于将特定的数据导入 Great Plains. 需要针对每一个新的数据集合生成新的 .mac 文件。

键盘宏

  键盘宏和编辑器宏分别在图形用户界面和编辑器中被交互式地使用。使用它们可以用简短的击键代替冗长的命令序列,并为重复性任务提供了一个简单的自动化形式。

  程序员的文本编辑器 Emacs (“编辑宏”[Editing MACroS]的简称)是沿用这一思想的产物。事实上,大多数编辑器是由宏组成的,Emacs 最初被设计为编辑语言 TECO 的宏集,后被移植为 Lisp 的一种方言 Emacs Lisp。

宏语言

  宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。例如, C preprocessor C预处理器Internet Macros(iOpus) M4(如前所述,源于AT&T,捆绑于Unix)

  宏定义

  c程序提供的预处理功能之一。包括带参数的宏定义和不带参数的宏定义。具体是指用一个指定的标志符来进行简单的字符串替换或者进行阐述替换。形式为:

  #define标志符[(参数表)] 字符串

  宏名

  在上定义中的标志符被称为“宏名”。

  宏展开

  在c程序编译时将宏名替换成字符串的过程称为“宏展开”。

  宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用, 但在文本处理程序中应用普遍。例如,

  C preprocessorC 预处理器

  Internet Macros(iOpus)

  M4(如前所述,源于AT&T,捆绑于Unix)

微软Word和宏病毒

  Visual Basic for Applications (VBA),是 Microsoft Office 里的一种编程语言. 但由上面的定义,它完全不是一种宏语言。然而,它的功能已经从中发展并最终替代了用户应用程序的宏思想,所以它被广泛地错误地称为是一种宏语言。

  VBA 可以访问许多操作系统函数并支持文档打开时自动执行宏。这使得用这种语言写计算机病毒成为可能。1990年代中后期,宏病毒成为了最流行的计算机病毒类型之一。其它的包括宏语言的项目,如openoffice.org,故意从其宏语言中排除了一些功能(如:自动执行)以避免破坏程序。然而,这一特性在很多事务中受到欢迎。

  • 宏资讯
  • 上海宏东用心打造企业文化 铸就用户信任品牌
  • 企业经过持续地成长和发展,都会有自己的企业文化。这些文化富含企业理念、宗旨、精神、愿景等方方面面的内容,并经过深入融合、渗透、沉淀,逐渐形成了自己独特的特色文化。
  • 李彦宏:机器人不可能控制人类,更无法取代人
  • 近日,全国工商联副主席、百度公司董事长兼首席执行官李彦宏在全国工商联机关三层报告厅做了题为“技术改变世界,AI开启新时代”的专题辅导报告。全国工商联机关全体干部、直属单位中层以上管理人员、直属商会负责人及秘书处负责人参加了报告会。
  • 上海宏东泵业以雄厚的实力打造品牌优势
  • 企业实力是企业综合水平的集中体现,企业实力的强弱直接影响企业发展的兴衰成败,因此目光远大的企业都会积聚实力,在市场竞争中树立品牌形象,从而处于优势地位。
  • 李彦宏:金融是AI运用的最佳场景
  • 人工智能概念火爆当下,在百度CEO李彦宏看来,人工智能已经是推动智能金融发展的动力。昨日,在中国农业银行与百度战略合作签约仪式上,李彦宏直言,金融是人工智能技术运用的最佳场景。
  • 李彦宏:金融是人工智能运用的最佳场景
  • 人工智能概念火爆当下,在百度CEO李彦宏看来,人工智能已经是推动智能金融发展的动力。昨日,在中国农业银行与百度战略合作签约仪式上,李彦宏直言,金融是人工智能技术运用的最佳场景。
  • 上海宏东高度负责 CQ磁力泵售后服务见真章
  • 众所周知,任何设备一旦长时间运转,都会出现一些问题,导致设备无法正常工作。设备出现问题后,用户也不会立即更换一台,所以为用户解决故障问题就成为了非常重要的服务环节。
  • 微宏动力电池数字化车间项目2019投产
  • 微宏动力投资3亿元打造的年产2.5GWh锂离子动力电池及系统数字化车间项目预计2019年6月投产,达产年实现销售收入50亿元人民币,利润总额5500万元。
  • 快速搜索
  • 热门词条