宏有三种。读取阶段,解析阶段,运行阶段。我们可以用图书出版作为例子来解释宏是如何修改程序的。 我们把文章比作程序,作者的原稿是程序文件,出版社排版是解析程序,读者阅读是程序运行。出于懒惰,我们的文章有一个修改任务,需要将所有的英语缩写展开。 第一类宏是在出版社接受作者稿件的时候触发的,作者给出版社提供了一个宏,声明了所有loli都替换为Lolita。 第二类宏在出版社审核文章语法的时候触发,总编辑给出了一个宏,让所有的expo都替换成世博会。并且我们可以指定更复杂的上下文条件,比如只有当前面有不少于两个chapter,并且这个Chapter有不少于5个lolita出现的时候才进行修改。 第三类宏发生在读者阅读的时候,也就是程序运行的时候。