Jason. Cała informatyka w jednym miejscu!

Gotowi na ostatnią część wyjątkowo "logicznego" rozdziału? Poprzednie części są tutaj i tutaj. Mogłem co prawda od razu to pokazać, aczkolwiek chciałem iść zgodnie z historią rozwoju tego potężnego języka (bo język C jest potężny nad wyraz) i przedstawić najpierw radzenie sobie bez typu "bool" w C przez 1999 rokiem, a potem pokazać jak wyglądała pierwsza wersja "booleana". W tym momencie chcę zademonstrować kolejny zapis a właściwie bibliotekę, która pozwala pisać tak samo jak w językach wyższej abstrakcji czyli z podziałem na "true" i "false". Biblioteka o której mowa nosi w języku C nazwę "stdbool.h". Dołączacie ją do swojego programu i już o nic nie musicie się martwić w tym zakresie.

BOOL W JĘZYKU C W STOPNIU ZMODERNIZOWANYM

To prawda ;). Wynaleziono w końcu taki zapis, który panuje obecnie jako najczęściej widziany w wielu innych językach wysokiego poziomu. Aby ominąć te być może denerwującą nazwę z przedrostkiem, o której była mowa poprzednio, dorzucono kolejną możliwość deklarowania logicznego typu danych w sposób pierwotnie ustalony. Zostało to opracowane jako rozwiązanie opcjonalne i opakowane w odpowiedni plik nagłówkowy wraz ze źródłowym, aby nie spowodować kolizji nazw już w istniejących programach, ale też by programiści mogli teraz sami zadecydować czy chcą korzystać z nowoczesnego typu "bool" w języku C, czy też nie. Teraz Ci, którzy chcą pisać normalnie "bool" i pisać normalnie "true" i "false", muszą jedynie dołączyć plik nagłówkowy o nazwie "stdbool.h" przy pomocy dyrektywy "include". I już!

BIBLIOTEKA "STDBOOL.H" W AKCJI

Ściągniemy sobie przykład z poprzedniej części i jedynie go przerobimy w taki sposób, aby wykorzystywał bibliotekę "stdbool.h". Sięgając do poprzednika, możecie sobie to porównać z poniższą wersją. Zostawiłem dwie wartości takie same, aby pokazać że nawet jak się uprzemy przy podaniu liczby całkowitej, to nie będzie z tego tytułu żadnych problemów:

#include <stdio.h>
#include <stdbool.h>

int main(void)
{
	bool a = true;
	bool b = 56;
	bool c = -415.6;
	bool d = false;
	
	if(a)
	{
		printf("Prawda w przypadku 1 kryje sie pod liczba %d\n", a);
	}
	
	if(b)
	{
		printf("Prawda w przypadku 2 kryje sie pod liczba %d\n", b);
	}
	
	if(c)
	{
		printf("Prawda w przypadku 3 kryje sie pod liczba %d\n", c);
	}
	
	if(d)
	{
		printf("Prawda w przypadku 4 kryje sie pod liczba %d\n", d);
	}
	
	getchar();
	
	return 0;
}

Więcej komentować nie trzeba. Jeden "include" więcej na samej górze w postaci "stdbool.h" i wygląda to o niebo lepiej. Zachodzicie w głowę jak to się dzieje, że plik nagłówkowy potrafi "magicznie" umożliwić lepszą nazwę typu danych? Jest to za sprawą nałożenia "aliasu" dla typu "_Bool". Alias w języku C tworzymy za pomocą słowa kluczowego "typedef" i tak samo jest to zrobione dla wartości typu "prawda"/"fałsz". To już tytułem ciekawostki, bo może to wielu z Was dziwić.


To była już ostatnia część ukazująca genezę i rozwój logicznego typu danych w języku C. "stdbool.h" to jest ostateczna wersja.

PODOBNE ARTYKUŁY