コンパイル指令



■undefの書式
<用途> #defineで定義されたものを無効にする
<書式> #undef 識別子

■#ifdefの書式 ■#ifndefの書式
<用途> 条件が定義されている場合は実行する <用途> 条件が定義されていない場合は実行する
<書式>
#ifdef (条件)
 実行文 
  ・
  ・
#endif
<書式>
#ifndef (条件)
 実行文 
  ・
  ・
#endif


<コンパイル指令のサンプル1-数値を比較->
#include <stdio.h>
#define BIGBIG(X,Y) ((X)>(Y) ? (X) :(Y))
# define MARCRON 100

void Dummy(int a);

void main(void)
{
 Dummy(50);
 getchar();
}

void Dummy(int a)
{
 //MARCRONが定義されていたら無効にして100->150に変更する
 # ifdef MARCRON
  # undef MARCRON
  # define MARCRON 150
 # endif
 printf("%dと%dでは%dのほうが大きいです。\n",MARCRON,50,BIGBIG(a,MARCRON));
}

※結果は「150と50では150のほうが大きいです。」となります。

■#ifの書式
<用途> コンパイルする処理としない処理とを区別するときなどに用いる
<書式>
#if (条件)
 実行文 
  ・
  ・
#else
 実行文
  ・
  ・
#endif


<コンパイル指令のサンプル2-実行文の制御->
#include <stdio.h>
#define _ON 1
void main(void)
{
 int kazu;
 char moji[10];

#if _ON
 printf("数値を入力して下さい。\n");
 scanf("%d",&kazu);
 printf("%dを入力しましたね。\n",kazu);
#else
 printf("文字列を入力して下さい。\n");
 gets(moji);
 printf("%sを入力しましたね。\n",moji);
#endif
 getchar();
}

※_ONが真の場合は「数値を入力・・」となり、偽の場合は「文字列を入力・・・」となる。





Cの基礎のページへ



ホーム PV ランキング