我对m4很新,但找不到这个简单的事情:
是否可以在单词中间展开宏? (我会把它用作柜台 将用于低级代码中的C符号名称)
我的意思是:
define(`foo',`bar')
Happy fooday!
预期输出为:
Happy barday!
这样做甚至可以:
Happy expand(foo)day!
很抱歉,如果这是一个非常简单的问题,但我的谷歌搜索尝试失败了'm4扩展宏的话,m4扩展子串'等...
由于
编辑1:
StackOverflow建议:Expansion of macro not working in M4 ......这正是我想要的。
编辑2:
好的,这并不容易:
define(`foo',`bar')
Happy asdfoo()day!
这失败了,这可能是正常的。但是,在我的C符号名称中,我必须在单词的中间替换这些宏。怎么办呢?
答案 0 :(得分:2)
我相信你在寻找:
define(`foo',`bar')
Happy `'foo`'day!
也就是说,使用m4引号来表示单词边界。或者,更准确地说,在您希望展开的单词的任一侧使用空字符串,并用引号指示该空字符串的边界。