C言語(windows)でBOOL型を使う方法

windowsのC言語では、#include <windows.h>するとBOOL型とTRUE,FALSEが使えるようになります。

実験してみたら、BOOL型と言っても実体はただのINT型で、TRUEの実体は1でFALSEの実体は0でした。

こんな感じ。
#include <windows.h>
#include <stdio.h>

main () {
    printf("%d\n", TRUE);
    printf("%d\n", FALSE);
    
    BOOL x = 3;
    printf("%d\n", x);
    
}
実行結果
1
0
3
実体はただのINT型なので、3とかを代入できてしまうのがおちゃめですね。


Cにはboolがなかったため、様々な代用が行なわれてきた。

例えばWindows環境では、windef.h内(windows.hでインクルードされる)で、次のようにtypedefされる。

typedef int BOOL;
また、真偽値もマクロとして定義されている。一般的な例は次のとおり。

#define FALSE 0
#define TRUE 1

"bool ‐ 通信用語の基礎知識"

ということだそうです。
C言語かわいいよC言語。
カテゴリ: