2013-02-13 2 views
2

저는 매우 m4에 익숙하지만이 간단한 것을 찾을 수 없습니다 :m4 단어 안에 매크로를 확장합니다.

단어 중간에 매크로를 확장 할 수 있습니까?

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

가 예상되는 출력은 다음과 같습니다 :

Happy barday! 
내가 좋아하는 말은

(I 낮은 수준의 코드에서 C 기호 이름에 사용되는 카운터 을 위해 사용할 것)

다음과 같이 그것을 할도 괜찮습니다 :

이 아주 쉬운 questio 경우
Happy expand(foo)day! 

죄송합니다

에 StackOverflow이 추천 : N하지만 내 인터넷 검색을 시도 등 ...

감사

EDIT 1, 'M4는 문자열을 확장 M4, 단어 매크로를 확장'에 실패 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

관련 문제