bool はネイティブ C 型ですか? 質問する

bool はネイティブ C 型ですか? 質問する

Linux カーネル コードで bool が使用されていることに気付きましたが、bool は C++ 型だと思っていました。bool は標準の C 拡張 (ISO C90 など) ですか、それとも GCC 拡張ですか?

ベストアンサー1

bool現在の C - C99 には存在しますが、C89/90 には存在しません。

C99 では、ネイティブ型は実際には と呼ばれ_Bool、 はboolで定義された標準ライブラリ マクロですstdbool.h(これは に解決されると予想されます_Bool)。 型のオブジェクトは_Bool0 または 1 を保持しますが、truefalseも からのマクロですstdbool.h

ちなみに、これは、が含まれていない限り、 C プリプロセッサが#if trueとして解釈することを意味します。一方、C++ プリプロセッサは、言語リテラルとしてネイティブに認識する必要があります。#if 0stdbool.htrue

おすすめ記事