C ディレクティブ 新しいページはコチラ
提供: yonewiki
(→#if/#elif/#else/#endif) |
(→#ifdef/#ifndef) |
||
182行: | 182行: | ||
=='''<nowiki>#</nowiki>ifdef/<nowiki>#</nowiki>ifndef'''== | =='''<nowiki>#</nowiki>ifdef/<nowiki>#</nowiki>ifndef'''== | ||
+ | #ifdefディレクティブや#ifndefディレクティブは#ifディレクティブの利用方法の一部の記述を簡略化するためのディレクティブです。 | ||
+ | <syntaxhighlight lang="text"> | ||
+ | #ifdef __MYDIRECTIVE_MACRO__ | ||
+ | ~ | ||
+ | #endif | ||
+ | </syntaxhighlight> | ||
+ | と記述した場合 | ||
− | + | ||
+ | <syntaxhighlight lang="text"> | ||
+ | #if defined(__MYDIRECTIVE_MACRO__) | ||
+ | ~ | ||
+ | #endif | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | と同等の記述をしたことになります。#ifディレクティブやdefined()ディレクティブ演算子の動作内容については#ifの説明をした項目を参照して下さい。 | ||
+ | |||
+ | |||
+ | #ifndefはif nof defineを省略した意味を持っていて、 | ||
+ | |||
+ | <syntaxhighlight lang="text"> | ||
+ | #ifndef __MYDIRECTIVE_MACRO__ | ||
+ | ~ | ||
+ | #endif | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | と記述した場合 | ||
+ | |||
+ | <syntaxhighlight lang="text"> | ||
+ | #if defined(__MYDIRECTIVE_MACRO__) | ||
+ | #else | ||
+ | ~ | ||
+ | #endif | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | という具合の#elseディレクティブの範囲の事象だけ実行する範囲として制御できます。もちろん、#ifndefの後に#elseを使うことは出来て、マクロが定義されている場合の制御構文についても記載できます。 | ||
+ | |||
+ | <syntaxhighlight lang="text"> | ||
+ | #ifndef __MYDIRECTIVE_MACRO__ | ||
+ | |||
+ | ~ ※__MYDIRECTIVE_MACRO__ というマクロが定義されていない場合の処理 | ||
+ | |||
+ | #else | ||
+ | |||
+ | ~ ※__MYDIRECTIVE_MACRO__ というマクロが定義されている場合の処理 | ||
+ | |||
+ | #endif | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | #ifディレクティブの使い方とdefinedディレクティブ演算子とマクロの使い方を理解していないとこの項目は理解できないと思います。 |