C言語でブール値(bool)を扱う方法:enumを使った実装例
C言語には、他の多くのプログラミング言語のような組み込みのブール型(bool)が標準では用意されていません。しかし、enum(列挙型)を活用することで、独自のブール値を簡単に定義できます。
enumによるbool型の作成
まず「boolean」という名前の列挙型を作成し、その要素として「false」と「true」を定義します。列挙子は宣言された順に0から順番に値が割り当てられるため、先頭のfalseは0、2番目のtrueは1という値を持つことになります。これにより、boolean型をあたかもブール型であるかのように扱えるようになります。
コード例
#include<stdio.h>
typedef enum {
F, T
}
boolean;
main() {
boolean my_bool1, my_bool2;
my_bool1 = F;
if(my_bool1 == F) {
printf("my_bool1 is false\n");
} else {
printf("my_bool1 is true\n");
}
my_bool2 = 2;
if(my_bool2 == F) {
printf("my_bool2 is false\n");
} else {
printf("my_bool2 is true\n");
}
}
出力結果
my_bool1 is false my_bool2 is true
コードの解説
typedef enum { F, T } boolean; によって、F(0)とT(1)を要素とする新しい型「boolean」が定義されます。
- my_bool1:F(false)を代入しているため、条件式
my_bool1 == Fが成立し、「false」と表示されます。 - my_bool2:値として2を代入しています。これはFでもないため、条件式が不成立となり、「true」と表示されます。
この例から分かるように、enumで定義した型は内部的には整数として扱われるため、0と1以外の値も代入可能です。厳密な真偽値のチェックが必要な場合は注意が必要です。
補足:C99以降のstdbool.hヘッダー
C99規格以降では、標準ライブラリの <stdbool.h> をインクルードすることで、bool 型と true・false マクロが利用可能になっています。新しいプロジェクトではこちらを使用するのが一般的ですが、古いコンパイラやC89環境では、本記事のようにenumで自作する方法が有効です。
-
Windows 10でBashを使う方法!Linuxサブシステム導入の完全ガイド
Microsoftは年次開発者会議「Build」にて、Linuxの開発元であるCanonical社と協力し、Windows 10にBashシェルを搭載することを発表しました。このニュースはWindowsコミュニティだけでなく、Linuxコミュニティにも大きな反響を呼びました。誰もがその使い心地や導入方法、そしてなぜこの機能が存在するのかに関心を寄せています。そこで本記事では、今日すぐにWindows 10環境でBashを使えるようにするための手順を詳しく解説します。やや手間のかかる作業ですが、ガジェット好きの方ならぜひ挑戦してみる価値があるでしょう。注意:Windows上のUbuntu Bas
-
Windows 7でXPモードを使用する方法|導入から初期設定まで徹底解説
Windows 7は、リリース以来、全体的に優れたオペレーティングシステムとして高い評価を受けてきました。必要とされていた改善点が数多く盛り込まれ、新たな技術機能も搭載されています。 しかし、新しいOSにはつきものの課題として、Windows 7では旧バージョン向けのアプリケーションとの互換性(後方互換性)に問題が生じる場合があります。Microsoftはこの点を予期しており、Windows 7に「XPモード」を搭載することで対応しました。 XPモードを使用すると、Windows 7上の仮想マシン内でWindows XPを実行できます。これにより、古いアプリケーションやプログラムも必要に応じて