プリプロセッサ ディレクティブ
プリプロセッサ ディレクティブとはプリプロセッサーに対して与える命令のことです。
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
#ifdef DEBUG // コンパイルエラーを発生させる。 #error DEBUG must be undefined. #endif
#line
「line」はコンパイラ内部に格納された行番号やファイル名を変更します。
// コンパイラ内部の行番号を変更する。 #line 10 // コンパイラ内部の行番号とファイル名を変更する。 #line 20 "NewFile.cpp"