私は次の問題に遭遇しました。具体的な説明は見つかりませんでした。なぜCは型定義を提供するのですか? を使ってBOOL型を定義するのと同じくらいBOOLマクロを定義していませんか?例えば、#define
ディレクティブはブール型として使用できるマクロを作成するために使用することができCは型定義を提供するのがなぜ迷惑ですか?
:
#define Bool int
型定義と呼ばれる機能を使用して、ブールタイプを設定する別の方法があります。
typedef int Bool;
なぜ最後の方法が優先されますか?利点は何ですか?
Cには 'BOOL'マクロがなく、組み込みの' bool'型もありません。しかし、自作の 'typedef'やマクロの代わりに使うべき' 'Boolena''型の' _Bool'があります。あなたの質問:これは**好まれず強く推奨されていません。 – Olaf
Cの '_Bool'は、OPの' typedef int Bool; 'の結果とは異なる型です。ここの 'Bool'は、OPの' typedef'と '#define'の関係を示す良い例ではありません。 – chux
@chux:それらが異なるところの例: '_Bool b = 5; – Olaf