2012-04-18 10 views
10

のマクロ引数に変換して、"text"textに変換する必要があるとします。Cマクロで引用符を削除する方法はありますか?

#define UN_STRINGIFY(x) /* some macro magic here */ 

今、これはマクロ文字列化の逆となり、このマクロは、引数

UN_STRINGIFY("text") // results in ----> text 

から""を削除します呼び出し:

#define STRINGIFY(x) #x 

すると、このことは可能ですか、私はマクロで遊んでいます悪い?

+0

できたらどうしたらいいですか? – iammilind

+3

これは不可能です。好奇心から、意図された用途は何ですか? – dasblinkenlight

+0

まあ、通常はstringifyを使用しますが、私はいくつかのマクロをリファクタリングしており、呼び出しパターンを変更したくないのです。 '#define THIS_MACRO(stringParam)const char * unstringParam = stringParam;'に変更されます。 – syvex

答えて

15

これはできません。それはおそらく良いことです:あなたが文字列を渡すと、あなたはそれにかなり多くを入れることができると仮定します。それをストリングしないと、実際にはコンパイラはその文字列の内容を実際に気にするでしょう。

関連する問題