プリプロセッサ ディレクティブ

プリプロセッサ ディレクティブとはプリプロセッサーに対して与える命令のことです。
cocos2d-xのソース内でよく見かけるので、改めて勉強します。

プリプロセッサ ディレクティブについては下記の通りです。




プリプロセッサ ディレクティブ

#define、undef

define」は識別子を定義し、「undef」はその定義を削除します。

// 「DEBUG」を定義する。
#define DEBUG

// 「DEBUG」の定義を削除する。
#undef DEBUG
#ifdef、ifndef、else、endif

ifdef」はその識別子が定義されている場合、処理を実行します。
ifndef」はその識別子が定義されていない場合、処理を実行します。

// 「DEBUG」を定義されているか確認する。
#ifdef DEBUG
// 「DEBUG」が定義されている場合、実行される。
#else
// 「DEBUG」が定義されていない場合、実行される。
#endif

// 「DEBUG」を定義されていないか確認する。
#ifndef DEBUG
// 「DEBUG」が定義されていない場合、実行される。
#else
// 「DEBUG」が定義されている場合、実行される。
#endif
#if、elif、else、endif

if」は条件によって処理を分岐します。

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
// Androidの場合、実行する。
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
// iOSの場合、実行する。
#else
// 上記以外の場合、実行する。
#endif
#error

error」はコンパイルエラーを発生させます。

#ifdef DEBUG
// コンパイルエラーを発生させる。
#error DEBUG must be undefined.
#endif
#line

line」はコンパイラ内部に格納された行番号やファイル名を変更します。

// コンパイラ内部の行番号を変更する。
#line 10

// コンパイラ内部の行番号とファイル名を変更する。
#line 20 "NewFile.cpp"