2013-02-13 92 views
2

我對m4很新,但找不到這個簡單的東西:m4展開宏內部詞

是否可以在一個詞的中間展開一個宏? (我想使用它的一個計數器 ,將在C符號名稱在低級別的代碼中使用)

我的意思是這樣的:

define(`foo',`bar') 
Happy fooday! 

預期輸出將是:

Happy barday! 

重要的是要做到像這甚至是OK:

Happy expand(foo)day! 

很抱歉,如果這是一個非常容易questio n,而是我使用Google嘗試失敗的 'M4擴大宏字,M4擴展子',等...

感謝

編輯1:

StackOverflow的建議是:Expansion of macro not working in M4 ...這確實是我在尋找的東西。

編輯2:

好吧,這不是那麼容易:

define(`foo',`bar') 
Happy asdfoo()day! 

這個失敗,這可能是正常的。但是,在我的C符號名稱中,我必須在這些單詞的中間替換這些宏。那將是什麼方式?

回答

2

我相信你正在尋找:

define(`foo',`bar') 
Happy `'foo`'day! 

也就是說,使用M4報價來表示字邊界。或者,更準確地說,在希望展開的單詞的任一側使用空字符串,並用引號指示該空字符串的邊界。

+0

非常感謝你,它像一個魅力工作! :) – dennis90 2013-03-02 17:44:01