1

是否可以定义输出二进制整数的 M4 宏?例如:

define(`foo', $1)
foo(42)

它应该输出 1 个字节,值为 42。

4

2 回答 2

0
define(`foo', `esyscmd(`python -c "import sys; sys.stdout.write(chr($1))"')') dnl
foo(`42')

扩展为:

*

不过,这有点作弊。

于 2011-02-27T00:03:26.577 回答
0

在 GNU m4中有一个format以 C 函数为模型的printf

% gm4
定义(`chr', `格式(`%c', `$1')')dnl
42 是字符(`42')
42 是 *

这在 FreeBSD 附带的 m4 中不起作用。

于 2011-04-25T17:08:06.957 回答