这是本系列的最后一篇,介绍一些宏在日常使用中常见的一些坑。 由于宏本质上是对程序的文本进行操作,且宏和 C 语言本身完全是两套系统,所以很多时候总会引入一些奇怪到的错误,这一节我们就来介绍一些常见的需要注意的地方。
宏定义黑魔法-从入门到奇技淫巧 (5)
这里是本系列的第五篇。如果你已经耐心看到了这里,那么恭喜你这一篇是我觉得最有趣的一部分。整个系列的前四篇都可以说是在给这篇的内容做铺垫。终于要开始正片了,将宏的语言能力拓展到接近图灵完备。当然我承认这个说法有点噱头的意思,因为最终实现的方法递归栈是有限的。但是这世界上递归栈有限的语言基本上递归栈都是有限的嘛,所以说是图灵完备也没有问题(逃)。
宏定义黑魔法-从入门到奇技淫巧 (4)
这是本系列的第四篇,终于我们要开始写一些有实际意义的东西了。这一节我们将介绍一些比较难看懂的宏的惯用法(黑魔法),本来准备一口气同时介绍如何实现图灵完备的宏的,结果发现篇幅太长。图灵完备宏放在下一篇中介绍了。那么就让我们开始学习真正的奇技淫巧吧!(๑•̀ㅂ•́)و✧
宏定义黑魔法-从入门到奇技淫巧 (3)
这是本系列的第三篇,也是整个系列中最核心的一篇。在这一节中将会介绍宏展开过程中最核心的机制,后续的很多技巧都是在这些特性上发展出来的。这一节的内容是 function-like 的宏展开。
宏定义黑魔法-从入门到奇技淫巧 (2)
这里是这个系列的第二篇。这次我们开始关注一些更复杂的宏特性————object-like 宏的递归展开。