m4的递归宏

define(`reverse', ifelse($#, 0, ``$0'', $1,,,
`reverse(substr($1, 1)'`'substr($1, 0, 1)')')dnl

用一个递归宏翻转一个字符串

我比较不熟悉的是substr这个函数

C++、JAVA、shell里面都有这个函数,C标准库貌似是没有的

substr 的范围是前闭后开的区间,substr($1, 0, 1)返回字符串的第一个字符,而不是两个。

updatedupdated2022-02-222022-02-22