2017-06-27 3 views
4

私はコードシンボルを何も定義しない#イディオムの名前は何ですか?

#define IO_API __declspec(dllexport) 

のラインが表示されている場合、私は「IO_APIが__declspec(dllexport)をするように定義された」私の同僚を言うだろう。私は、コード

#define IO_API 

のラインを見れば

しかし、私は簡単にかつ明確に私の同僚を言うだろうかわからないんだけど:任意の説明が少し上さまようする傾向があります。共通の記述子はありますか?

編集:ここではユースケースを探しているわけではなく、イディオムの名前に過ぎません。この辺り

+3

「IO_APIは何にも定義されていません」という問題は何ですか? – wasthishelpful

+0

私はおそらく "私はnullにハッシュdef'd"と言いますが、私は#define IO_API NULLと混同する可能性があります。 –

+0

私は 'IO_API'は空のトークン列であると言います。これは、プリプロセッサがトークンの置換を行うためです。 – StoryTeller

答えて

9

我々だけで

マクロIO_APIが何に展開言います。

又は

マクロIO_APIは空です。

これは本当にかなり主観的ですが、私は前者が混乱を最小限に抑えると考えています。

+0

私は_ "ifdef Hell" _が "イディオム"(ヘッダーガードは除外されている)を最高のものとして説明していると信じています。 –

+0

詳しい読書:http://ja.cppreference.com/w/cpp/preprocessor/replace – moooeeeep