Dlaczego programistom mylą się Halloween i Boże Narodzenie? Bo OCT(31) = DEC(25)
Kurs C++ - Część I. Jak powstaje program

Komputer potrafi operować wyłącznie na liczbach. Jeśli chcemy przy jego pomocy opracować grafikę lub muzykę, to musimy je zamienić na postać cyfrową. Podobnie jest z programem: tekst programu musi być zamieniony na zrozumiałe dla komputera rozkazy cyfrowe. Do tego służy specjalny program, zwany kompilatorem. Czyta on tekst programu, który zapisałeś w pliki CPP i zamienia na cyfrowe komendy dla komputera, które umieszcza w pliku wynikowym OBJ. Nie jest to jeszcze gotowy program, który można uruchomić.

Program napisany w C++ najczęściej składa się z kilku plików. Te wszystkie pliki są kompilowane do postaci osobnych plików wynikowych OBJ. Pliki te zawierają puste miejsca, bo kompilator nie zna adresów funkcji zapisanych w innych plikach. Zostawia puste miejsca przy odwołaniach do tych funkcji. Gdy już wszystko zostanie skompilowane, rozpoczyna pracę specjalny program, tak zwany linker, który uzupełnia te puste miejsca i łączy wszystkie pliki wynikowe w gotowy plik wykonywalny, czyli taki, który można już uruchomić: program EXE.

Język C++ nie ma instrukcji do obsługi dysków, drukarek, grafiki itp. Jeśli chcemy, by nasz program mógł obsługiwać pliki czy rysować na ekranie, musimy dołączyć odpowiednią bibliotekę, która zawiera zestaw funkcji do realizacji konkretnych rzeczy (np. obsługi plików). Dlaczego tak jest? Dlatego, by programy pisane w C++ mogły być kompilowane na różnych platformach (np. Linux, Windows). Dajmy na to napisałeś program pod Windows. Chcesz jednak mieć też jego wersję Linuxową. Co zrobić? Jeśli korzystałeś tylko z bibliotek standardowych, to wystarczy, że skompilujesz program pod Linuxem z Linuxowymi wersjami bibliotek i sprawa załatwiona. Inną zaletą stosowania bibliotek jest to, że nie musisz dołączać na przykład biblioteki do obsługi plików, jeśli twój program tego nie wymaga. Sam wybierasz, co jest ci potrzebne. Dzięki temu program zajmuje mniej pamięci.

Istnieje wiele gotowych bibliotek przeznaczonych do różnych zadań. Ty również możesz napisać bibliotekę i udostępnić ją innym programistom. Jeśli jednak nie chcesz, żeby oni podglądali lub przerabiali twój kod to rozdzielasz źródło twojej biblioteki na dwa pliki - plik nagłówkowy (z rozszerzeniem h) i plik implementacji (z rozszerzeniem cpp). Pierwszy zawiera tylko definicje (zapowiedzi) wszystkich danych i funkcji, natomiast w drugim umieszczasz kod odpowiedzialny za działanie funkcji. Teraz wystarczy, że skompilujesz plik cpp do postaci pliku wynikowego, który wraz z plikiem h możesz udostępnić komuś innemu Ten ktoś w żaden sposób nie dowie się, jak działa twój kod, bo dostanie go w wersji skompilowanej. Może co najwyżej zajrzeć do pliku nagłówkowego by sprawdzić, jakie funkcje siedzą w twojej bibliotece i użyć tych funkcji w swoim programie linkując twoją bibliotekę ze swoim programem.

Kompilacja to skomplikowany proces: trzeba przepuścić wszystkie pliki przez kompilator, a następnie połączyć pliki wynikowe z bibliotecznymi przy pomocy linkera. Na szczęście istnieją specjalne programy, tak zwane Zintegrowane Środowiska Programistyczne (ang. Integrated Development Environments, w skrócie IDE). Aplikacje takie zawierają edytor tekstowy, w którym wpisujesz swoje programy. Niektóre - dla ułatwienia pracy - oznaczają też na kolorowo słowa kluczowe języka. Gdy już napiszesz program, uruchamiasz proces budowania aplikacji. Środowisko programistyczne samo skompiluje wszystkie potrzebne pliki, dołączy odpowiednie biblioteki i zlinkuje gotowy plik wykonywalny. Środowiska takie posiadają też zwykle sporą dokumentację do bibliotek standardowych. W systemie Linux jest dołączony kompilator C++ i linker. Użytkownicy Windowsa mają do dyspozycji Visual C++ firmy Microsoft lub Borland C++. Istnieją też darmowe wersja Gnucpp czy Dev C++ 4.

« wstecz   dalej »