Jaki jest logiczny typ danych C99 i jak go używać?
Odpowiedzi:
Dołącz <stdbool.h>
nagłówek
#include <stdbool.h>
int main(void){
bool b = false;
}
Makra true
i false
rozwiń odpowiednio do 1
i 0
.
Sekcja 7.16
Typ i wartości logiczne< stdbool.h >
- 1 Nagłówek
<stdbool.h>
definiuje cztery makra.- 2 Makro
- bool rozwija się do _Bool.
- 3 Pozostałe trzy makra są odpowiednie do użycia w dyrektywach #if preprocessingu. Oni są
- prawda: która rozwija się do stałej liczby całkowitej 1,
- false: co jest interpretowane jako stała całkowita 0, i
- __bool_true_false_are_defined, która rozwija się do stałej liczby całkowitej 1.
- 4 Niezależnie od postanowień punktu 7.1.3, program może cofnąć, a być może później, ponownie zdefiniować makra bool, true i false.
Proszę sprawdzić odpowiedź tutaj w tym powiązanym wątku znalezionym na DaniWeb .
wyodrębniono i zacytowano tutaj dla wygodnego odniesienia: -
_Bool : typ boolowski C99. Bezpośrednie użycie _Bool jest zalecane tylko wtedy, gdy utrzymujesz starszy kod, który już definiuje makra dla bool, true lub false. W przeciwnym razie te makra są znormalizowane w
<stdbool.h>
nagłówku. Uwzględnij ten nagłówek i możesz używać bool tak, jak w C ++.
#include <stdio.h>
#include <stdbool.h>
int main ( void )
{
bool b = true;
if ( b )
printf ( "Yes\n" );
else
printf ( "No\n" );
return 0;
}
_Bool
istnieje wraz z bool
. Bardzo pomocne, aby to zrozumieć.
_Bool
(przez przypisanie, rzutowanie itp.) Jest efektywna przez poprzedzanie wyrażenia przedrostkiem!!
.