Czy ktoś może mi wyjaśnić, jaka jest różnica między typem danych _Bool i bool w C? Na przykładRóżnica między typami _Bool i bool w C?
_Bool x = 1;
bool y = true;
printf("%d", x);
printf("%d", y);
Czy ktoś może mi wyjaśnić, jaka jest różnica między typem danych _Bool i bool w C? Na przykładRóżnica między typami _Bool i bool w C?
_Bool x = 1;
bool y = true;
printf("%d", x);
printf("%d", y);
Te typy danych zostały dodane w C99. Ponieważ bool
nie został zarezerwowany przed C99, używają one słowa kluczowego _Bool
(które zostało zarezerwowane).
bool
to pseudonim dla _Bool
, jeśli podasz stdbool.h
. Zasadniczo, w tym nagłówek stdbool.h
oznacza, że kod jest prawidłowy, a identyfikator bool
jest "zarezerwowany", tzn. Że twój kod nie użyje go do własnych celów (podobnie jak w przypadku identyfikatorów true
i false
).
+1 za uwzględnienie historii. – Lindydancer
Długoterminowym zamiarem wydaje się być, że standard zostanie ostatecznie zmieniony, aby słowo kluczowe było słowem kluczowym. Jest to krok 1, w którym można użyć
Nie rozumiem, dlaczego musi to potrwać dwie dekady, biorąc pod uwagę, że jest to oczywista poprawa. Kod, który nie lubi tej zmiany, może być nadal kompilowany przy użyciu aktualnych wersji kompilatora. –
Nie ma różnicy.
bool
to makro, które rozwija się do _Bool
w stdbool.h
.
I true
jest makro, które rozszerza się do 1 w stdbool.h
'bool' również musi być typedef, C nie ma tego typu. –
Analogiczne do _Complex vs complex. –