曾经非常困惑于C的宏替换,因为有很多书和文章举出了各种不适用的反例。于是非常焦虑,这玩意儿到底应该如何使用?又或者是,是不是C代码就是不安全的?因为无法写出比较完备的宏替换?答案其实很简单,不要去用那么复杂的宏替换,每次替换的时候都在头脑中演绎一遍,看是否会出问题。如果无法简单地判断其结果是否会出问题,那么,别用。That's all. 以这样的标准来写C代码,才是正途。其实原理跟投资很像,不懂不投。不牢固的技术/feature、不确定的情形,别用就完了。而不是耍杂技。