2016-08-27 11 views
0

私は*.c*.mソースによって含まれているヘッダーファイルを持っています。 Cソースにファイルが含まれている場合は、Objective Cの内容を含む行をスキップしたいと思います。したがって、gccにObjective Cファイルをコンパイルしているときにアクティブである組み込みコンパイラ定義があるかどうか疑問に思っていました。これは、コンパイラが現在C++ソースをコンパイルしていることを示す__cplusplus定義に似ています。 Objective Cに相当するものはありますか?gcc define Objective C

もちろん、自分自身のプリプロセッサシンボルである#defineでも構いませんが、gccにはすでにこの定義が組み込まれているかどうかを知りたいと思います。

+0

ヘッダーファイルを別々のCヘッダーファイルとObj-Cヘッダーファイルに分割するのはなぜですか? – Sulthan

+0

私は数十の代替ソリューションがあることを知っており、これは悪いコーディングスタイルであることを知っていますが、私は本当にこの質問の答えに興味があります。コンパイラはObjective Cのために何かを定義しているかどうか? – Andreas

+0

Google "gcc __cplusplus"と、[Standard Predefined Macros](https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html)があります。 – Willeke

答えて

0

私自身の質問に答えるために、gccはObjective Cソースをコンパイルするときは常に__OBJC__マクロを定義します。

関連する問題