答案 0 :(得分:6)
通常,宏是扩展为多条指令的指令。缩写,如果你愿意的话。宏的存在与缩写存在的原因相同;他们是一种速记。
答案 1 :(得分:6)
宏是一个相当广泛的术语。例如,在C ++中,存在诸如these之类的宏。从软件开发的角度来看,它们允许您使用这些便利宏(例如__FILE__
)来执行某些操作,例如获取当前源文件的名称等。
您还可以在编辑器中记录按键宏。例如,如果要编辑文件的每一行并用引号括起来,则可以记录一系列按键来执行此操作,然后将宏“保存”到单个键。然后,您可以按下该键,该键将执行您刚为文件中的每一行保存的所有击键。
答案 2 :(得分:3)
宏存在的原因很多
答案 3 :(得分:1)
由于语言限制,当没有其他功能可行时,宏对DRY(不要重复自己)有好处。现代语言往往足够灵活,很少需要宏。例如,能够将函数作为参数传递,而泛型有助于减少对宏的需求。
优点:
缺点:
答案 4 :(得分:1)
宏是批量命令。 它们通常被最终用户用于自动执行重复性任务。
示例宏可以包括:
通常,宏旨在供最终用户直接使用(与例如面向开发人员的API相比)。
答案 5 :(得分:1)
宏是用户友好的代码。它们通常经验证实。因此,他们节省了很多时间。
答案 6 :(得分:1)
没有定义宏是什么,就像大多数人已经做过的那样,我只会列出一些优点/缺点(绝不是详尽无遗的)
<强>优点:强>
- 节省时间(快捷方式的目的)
- 符合人体工程学(主观 - 较少打字但通常需要一次按2个或更多键)
- 让一个极客想成为极客 -
<强>缺点:强>
- 如果有太多的宏,可能会很难管理
- 可能与现有应用程序/系统快捷方式发生冲突并导致混淆
- 某人使用同一台计算机/应用程序的潜在危险
答案 7 :(得分:1)
优点:
Resharper's shortcuts可能被视为一些宏,在某些情况下可用于减少执行某些操作的击键次数。同样适用于IntelliSense。
缺点:
如果开发人员几乎依赖于这样的工具,如果工具不可用或者使用了足够多的宏,他们不知道如何做某些事情,那么它几乎就会像80-90那样出现另一种语言代码的百分比可能只是宏,我在以前的地方看到并使用过这些宏,包括用于生成网页的自定义标记语言。
答案 8 :(得分:1)
可以在Practical Common Lisp第7章和第8章中找到对Lisp宏的一个很好的介绍。
答案 9 :(得分:0)
“宏”可以用作模板引擎,以便最大限度地减少重复性任务,例如剪切/粘贴。
答案 10 :(得分:0)
当内联代码比调用函数更快时,我使用宏。除了DSP编程之外,这对我来说现在很少。我一直用汇编语言和C语言使用宏。