예를 들어,
#define IF_NOT_DEFINED_ZERO(X) \ #ifndef X \ #define X 0 \ #endif
위의 코드는 에러가 나던데요. 위의 코드가 의도하는 것처럼, IF_NOT_DEFINED_ZERO 가 다시 또 macro directive로 확장되는 이런 구문이 가능할까요?
GNU CPP 매뉴얼을 봐서는 불가능해 보이는데, 혹시나 하는 마음에 올려봅니다.
안됩니다. macro로 치환된 결과는 다시 preprocessor directive(전처리기 지시어)로 인식될 수 없습니다. (pragma operator 제외)
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
원하시는 것처럼 강력한? 매크로 치환 기능을 원하시면 m4 등을 써서 source를 preprocessing하는 방법도 있습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
안됩니다. macro로 치환된 결과는 다시 preprocessor dir
안됩니다. macro로 치환된 결과는 다시 preprocessor directive(전처리기 지시어)로 인식될 수 없습니다. (pragma operator 제외)
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
원하시는 것처럼 강력한? 매크로 치환 기능을 원하시면 m4 등을 써서 s
원하시는 것처럼 강력한? 매크로 치환 기능을 원하시면 m4 등을 써서 source를 preprocessing하는 방법도 있습니다.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기