【C言語】プリプロセッサ#ifの分岐をOR条件で行う方法

この記事では、C言語における#ifディレクティブの使い方について解説します。

目次から探す

#ifディレクティブの基本的な使い方

C言語において、条件に基づいてコードの一部をコンパイルするためには、プリプロセッサディレクティブの一つである#ifディレクティブを使用します。

#ifディレクティブは、指定した条件が真である場合に、その条件内のコードをコンパイルすることができます。

単一の条件式での分岐

まずは、単一の条件式を使用して分岐する方法を見ていきましょう。

以下のようなコードを考えてみます。

#include <stdio.h>
#define FLAG 1
int main() {
    #if FLAG
        printf("FLAG is true\n");
    #else
        printf("FLAG is false\n");
    #endif
    return 0;
}

上記のコードでは、FLAGというマクロを定義しています。

FLAGが1である場合には、FLAG is trueというメッセージが表示されます。

もしFLAGが0である場合には、FLAG is falseというメッセージが表示されます。

複数の条件式での分岐

次に、複数の条件式を使用して分岐する方法を見ていきましょう。

以下のようなコードを考えてみます。

#include <stdio.h>
#define FLAG1 1
#define FLAG2 0
int main() {
    #if FLAG1 && FLAG2
        printf("Both flags are true\n");
    #elif FLAG1 || FLAG2
        printf("At least one flag is true\n");
    #else
        printf("Both flags are false\n");
    #endif
    return 0;
}

上記のコードでは、FLAG1FLAG2という2つのマクロを定義しています。

FLAG1FLAG2が両方とも1である場合には、Both flags are trueというメッセージが表示されます。

もしFLAG1FLAG2のどちらかが1である場合には、At least one flag is trueというメッセージが表示されます。

両方とも0である場合には、Both flags are falseというメッセージが表示されます。

OR条件を使った分岐の方法

OR条件の概要

OR条件を使った分岐では、複数の条件式のいずれかが真である場合に、その条件内のコードをコンパイルすることができます。

OR条件は、||演算子を使用して表現されます。

OR条件を使った分岐の例

以下のようなコードを考えてみましょう。

#include <stdio.h>
#define FLAG1 0
#define FLAG2 1
int main() {
    #if FLAG1 || FLAG2
        printf("At least one flag is true\n");
    #else
        printf("Both flags are false\n");
    #endif
    return 0;
}

上記のコードでは、FLAG1FLAG2という2つのマクロを定義しています。

FLAG1FLAG2のいずれかが1である場合には、At least one flag is trueというメッセージが表示されます。

両方とも0である場合には、Both flags are falseというメッセージが表示されます。

以上が、C言語における#ifディレクティブを使用したOR条件の分岐の方法についての解説です。

条件に応じてコードの一部をコンパイルすることで、柔軟なプログラムの作成が可能となります。

目次から探す