Разница между типами _Bool и bool в C?
Может ли кто-нибудь объяснить мне, какая разница между типами данных _Bool и bool в C? Например
_Bool x = 1; bool y = true; printf("%d", x); printf("%d", y);
- Неявные декларации функций в C
- C: использование clock () для измерения времени в многопоточных программах
- Приведение float в int (побитовое) в C
- Какие операции и функции на +0.0 и -0.0 дают разные арифметические результаты?
- Почему ++ i ++ дает «L-значение требуемой ошибки» в C?
- Почему «memset (arr, -1, sizeof (arr) / sizeof (int))« не очищает целочисленный массив до -1?
- Функция, возвращающая адрес локальной переменной ошибки в C
- Где найти реализации функций stdio.h?
- Где используется ключевое слово C auto?
- Как вы храните в памяти сколь угодно большое целочисленное значение?
- Почему sizeof (param_array) - размер указателя?
- Разница между int и char в getchar / fgetc и putchar / fputc?
- Как работает getchar ()?
Эти типы данных были добавлены в C99. Поскольку bool
не был зарезервирован до C99, они используют ключевое слово _Bool
(которое было зарезервировано).
bool
– псевдоним для _Bool
если вы включаете stdbool.h
. В принципе, включая заголовок stdbool.h
– это признак того, что ваш код в порядке, при этом идентификатор bool
является «зарезервированным», то есть ваш код не будет использовать его для своих целей (аналогично для идентификаторов true
и false
).
Нет никакой разницы.
bool
– макрос, который расширяется до stdbool.h
в stdbool.h
.
И true
– макрос, который расширяется до 1 в stdbool.h