2009-03-17 10 views

答えて

30

##は##の前にあるものを連結し、後のものを連結します。だからあなたの例ではZEND_FN(foo)を行うとzif_foo

6

エコーRVVの答えになるでしょう。

リテラル文字列を連結すると、プリプロセッサ/コンパイラ間に矛盾が生じることに注意してください。他方はそれをbaulk、その代わりにちょうど前に反対ように、2つのリテラルが(コンパイラによって接合されることを必要とするのに対し、いくつかは

const char s[] = STR_CAT("concat", "enation") 

のように##

#define STR_CAT(s1, s2) s1 ## s2 

を必要としますプロセッサ)、これが必要になります

#define STR_CAT(s1, s2) s1 s2 

HTH

関連する問題