是否可以定义输出二进制整数的 M4 宏?例如:
define(`foo', $1)
foo(42)
它应该输出 1 个字节,值为 42。
define(`foo', `esyscmd(`python -c "import sys; sys.stdout.write(chr($1))"')') dnl
foo(`42')
扩展为:
*
不过,这有点作弊。
在 GNU m4中有一个format
以 C 函数为模型的宏printf
。
% gm4 定义(`chr', `格式(`%c', `$1')')dnl 42 是字符(`42') 42 是 *
这在 FreeBSD 附带的 m4 中不起作用。