#ifとは
・目次
1.#ifとは
2.#if,#elif,#else,#endifの使い方
(1) 使用方法、書き方
// 構文
#if 条件
//条件式1が成立するの時に実行する処理 (ブロック1)
何らかの処理
#elif 条件
// 条件式1が成立しないで条件2が成立する時の処理
何らかの処理
#else
//条件式1も条件式2も成立しない時の処理 (ブロック3)
何らかの処理
#endif
//**********************************************************
//**********************************************************
//if 0と1を切り替えることで、実行するプログラムの切り替えが出来る。
#if 0
//実行されない
#else
//実行される
#endif
#if 1
//実行される
#else
//実行されない
#endif
//**********************************************************
//if 0と1を切り替えることで、実行するかどうか、切り替えが出来る。
#if 0
//実行されない
#endif
#if 1
//実行される
#endif
//**********************************************************
//0と1を切り替えることで、実行するかどうか、切り替えが出来る。
#if DEBUG
//実行される
#endif
#if DEBUG2
//実行されない
#endif
//**********************************************************
(2) 使用例(使用方法1:#if , #elifを使用する1)
#include <stdio.h> //#define test1 1 //test1の処理を実行する。 #define test2 1 //test2の処理を実行する。 int main(void) { #if test1 //test1が有効(0以外の時)実行 printf("ifdef"); #elif test2 //test1が無効状態かつtest2が有効の時実行 printf("elif"); //実行される。 #else //test1もtest2も無効の時実行 printf("else"); #endif return 0; }
(3) 使用例(使用方法1: #if , #elifを使用する2)
#include <stdio.h> #define test1 0 //0をtest1に置き換える。 #define test2 1 //1をtest2に置き換える。 #define test3 2 //1をtest2に置き換える。 #define zyouken test3 //test3の処理を実行する。 int main(void) { #if zyouken == test1 //zyoukenがtest1の時実行 int a = zyouken; printf("if_test1:%d",a); //実行されない。 #elif zyouken == test2 //zyoukenがtest2の時実行 int a = zyouken; printf("elif_test2:%d",a); //実行されない。 #elif zyouken == test3 //zyoukenがtest3の時実行 int a = zyouken; printf("elif_test3:%d",a); //実行する。 #else printf("else"); #endif return 0; }
実行結果:https://paiza.io/projects/MEuJOgL6CgZiDOktCQIVPQ?language=c
(4) 使用例(使用方法2:#define、#elseによる切り替えプログラム)
プログラム内容:
#else側のプログラムを実行する。
#ifと#elseの役割を確認するプログラム。
#include <stdio.h> int main(void) { #if 0 printf("#ifが0以外の時実行"); #else printf("#ifが0の時実行"); #endif return 0; }
実行結果:https://paiza.io/projects/kRWjiUGkXYPO1JbQcQ0OCA?language=c
(5) 使用例(使用方法3:コメントアウト):一番良く使う。
プログラム内容:
#if 0から#endifまでの部分は実行されない。
#include <stdio.h> int main(void) { #if 0 printf("#ifが0以外の時実行_1"); #endif #if 1 printf("#ifが0以外の時実行_2"); #endif return 0; }
実行結果:https://paiza.io/projects/OxNeFuDs7Y1UASHH2ZbOEA?language=c
(6) 使用例(使用方法4:#defineによる有効、無効)
プログラム内容:
#if 0から#endifまでの部分は実行されない。
#include <stdio.h> #define DEBUG 1 #define DEBUG2 0 int main(void) { #if DEBUG printf("DEBUGが有効の時実行\n"); #endif #if DEBUG2 printf("DEBUG2が有効の時実行\n"); #endif return 0; }
実行結果:https://paiza.io/projects/h9-G2rqQImLkY07NHDKg6Q?language=c
#define DEBUG 1のみ実行される。
#define DEBUG 0又は、#defineでDEBUGがないと実行されない。
デバック用プログラムなど、デバック時にのみ有効にしたいプログラムを
入れる場合に使える。
関連記事
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary
・C言語基礎知識6(関数) - Project_OKI’s diary
・C言語基礎知識7(構造体1) - Project_OKI’s diary
・C言語基礎知識8(enum:列挙型) - Project_OKI’s diary
・C言語基礎知識9(typedef) - Project_OKI’s diary