質問

私には、以下のマクロを定義する新しい機能は以下の特別なネーミングスキーム:

#define CREATE_HOOK_STUB( func ) void ##func_STUB() { /* some code*/ }

しかし、プリプロセッサは常にconcatenates void##func_STUB があったのではないでし保存の空白を開発した。

私ことができるのか誤動作防止)にある文字列 ##func_STUB, がない.方法を教えてください解決す。

役に立ちましたか?

解決

だと思いまいに近い:

#define CREATE_HOOK_STUB( func ) void func##_STUB() { /* some code*/ }

ございますのでご注意下さいも このように連結された回答 る追加の詳細の挙動に関するトークンを貼り付けオペレーター:

気をつけなければいけないのは認識時にご利用中のトークン-ペースト('##"といいます)やstringizing('#')前処理演算子を使っていま利用追加的レベルの間接指定していると正常に動作があります。

かない場合にはこの項目に渡されたトークンを貼り付け操作マクロ自体を取得するでしょう結果がどのように変動するというだいたい---

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top