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 nazwę "stdbool". Dołączacie ją do swojego programu i już o nic nie musicie się martwić w tym zakresie.

BOOL W 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 i źródłowy, 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 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".

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 A kryje sie pod liczba %d\n", a);
	}
	
	if(b)
	{
		printf("Prawda B kryje sie pod liczba %d\n", b);
	}
	
	if(c)
	{
		printf("Prawda C kryje sie pod liczba %d\n", c);
	}
	
	if(d)
	{
		printf("Prawda D kryje sie pod liczba %d\n", d);
	}
	
	getchar();
	
	return 0;
}

Więcej komentować nie trzeba. Jeden "include" więcej na samej górze i "bool" w C wygląda 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" i "fałsz". To już tytułem ciekawostki bo może to wielu z Was dziwić. Któregoś razu napiszę o tym, jak tworzyć własne aliasy dla dowolnego typu danych.


To była już ostatnia część ukazująca genezę i rozwój logicznego typu danych w języku C.

PODOBNE ARTYKUŁY