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)返回字符串的第一个字符,而不是两个。
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)返回字符串的第一个字符,而不是两个。