#ifdef コマンドは、#define で定義された識別子が
あるかどうかをチェックするコマンドです。
あとの処理は、#if と同じく、条件付きコンパイル機能となります。
#ifについてはコチラのページをご覧ください。
構文
#ifdef #define識別子
何らかの処理
#elif 条件
何らかの処理
#else
何らかの処理
#endif
条件に合った部分の処理だけをコンパイル対象とします。
サンプルプログラムです。
#include <stdio.h>
#define SW // 定義を外す時は、この1行をコメントアウトする。
void main(void) {
#ifdef SW
処理1
#else
処理2
#endif
}
#define識別子SWが定義されている時は、処理1の部分がコンパイル対象となり、
#else以下の処理2はコンパイルされません。
また、SWが定義されていなかったら、
処理2の部分だけがコンパイル対象となります。
#ifdef コマンドの逆の意味である #ifndef コマンドも存在します。
#ifndef コマンドの意味は、
#define 識別子が定義されてなかったら・・・。
となります。
#ifdef と #ifndef コマンドは、別の表現方法もあります。
#if defined と #if !defined です。
それぞれ、同じ意味を表します。
#if defined コマンドの省略形が、#ifdef
#if !defined コマンドの省略形が、#ifndef
となっています。
一般的に、#ifdef と #ifndef を使う事が多いでしょう。
#ifについてはコチラのページをご覧ください。