阅读文档的m4宏语言,我发现了这个例子:
changequote([,])dnl
define([gl_STRING_MODULE_INDICATOR],
[dnl comment
GNULIB_[]translit([[$1]], [a-z], [A-Z])=1dnl
])dnl
gl_STRING_MODULE_INDICATOR([strcase])它产生:
GNULIB_STRCASE=1但是,如果省略引用strcase的话,我们的结果是相同的:
gl_STRING_MODULE_INDICATOR(strcase)产生
GNULIB_STRCASE=1为什么引用strcase
发布于 2022-11-20 22:14:11
如果strcase被定义为宏,则需要使用引号。例如,如果我们有define(strcase, foo),那么gl_STRING_MODULE_INDICATOR(strcase)将首先扩展到gl_STRING_MODULE_INDICATOR(foo),然后扩展到GNULIB_FOO=1。
一般来说,当某些单词意外地被定义为宏时,写得很好的m4输入将继续发挥作用。
https://stackoverflow.com/questions/74501178
复制相似问题