Можно ли определить макрос M4, который выводит двоичное целое число?Например:
define(`foo', $1) foo(42)
, который должен вывести 1 байт со значением 42.
В GNU m4 есть макрос format , который смоделирован после функции C printf.
format
printf
% gm4 define(`chr', `format(`%c', `$1')')dnl 42 is chr(`42') 42 is *
Это не будет работать в m4, поставляемом с FreeBSD.
define(`foo', `esyscmd(`python -c "import sys; sys.stdout.write(chr($1))"')') dnl foo(`42')
Расширяется до:
*
Хотя это немного обманывает.