Practical C Programming, 3rd Edition by Steve Oualline

How C Works

C został zaprojektowany jako pomost między programistą a surowym komputerem. Ideą jest umożliwienie programiście zorganizowania programu w sposób, który może on łatwo zrozumieć. Kompilator następnie tłumaczy język na coś, co maszyna może wykorzystać.

Programy komputerowe składają się z dwóch głównych części: danych i instrukcji. Komputer narzuca niewielką lub żadną organizację na te dwie części. W końcu komputery są zaprojektowane tak, aby były tak ogólne, jak to tylko możliwe. Programista powinien narzucić swoją organizację komputerowi, a nie na odwrót.

Dane w komputerze są przechowywane jako seria bajtów. C organizuje te bajty w użyteczne dane. Deklaracje danych są używane przez programistę do opisywania informacji, z którymi pracuje. Na przykład:

int total; /* Total number accounts */

mówi C, że chcemy użyć fragmentu pamięci komputera do przechowywania liczby całkowitej o nazwie total. Pozwalamy kompilatorowi zdecydować, jakich konkretnie bajtów pamięci użyć; ta decyzja jest drobnym szczegółem księgowym, o który nie chcemy się martwić.

Nasza zmienna total jest prostą zmienną. Może przechowywać tylko jedną liczbę całkowitą i opisywać tylko jedną sumę. Seria liczb całkowitych może być zorganizowana w tablicę w następujący sposób:

int balance; /* Balance (in cents) for all 100 accounts */

Ponownie, C zajmie się szczegółami narzucenia tej organizacji pamięci komputera. Wreszcie, istnieją bardziej złożone typy danych. Na przykład, prostokąt może mieć szerokość, wysokość, kolor i wzór wypełnienia. C pozwala nam zorganizować te cztery elementy w jedną grupę zwaną strukturą.

struct rectangle { int width; /* Width of rectangle in pixels */ int height; /* Height of rectangle in pixels */ color_type color; /* Color of the rectangle */ fill_type fill; /* Fill pattern */};

Chodzi o to, że struktury pozwalają programiście ułożyć dane tak, aby odpowiadały jego potrzebom, bez względu na to, jak proste lub złożone są te dane. Tłumaczenie tego opisu danych na coś, co komputer może wykorzystać, jest zadaniem kompilatora, a nie programisty.

Ale dane to tylko jedna część programu. Potrzebujemy również instrukcji. Jeśli chodzi o komputer, to nie wie on nic o układzie instrukcji. Wie, co robi dla bieżącej instrukcji i skąd ma wziąć następną, ale nic więcej.

C jest językiem wysokiego poziomu. Pozwala nam pisać wysokopoziomowe instrukcje, takie jak:

area = (base * height) / 2.0; /* Compute area of triangle */

Kompilator przetłumaczy tę deklarację na serię kryptycznych niskopoziomowych instrukcji maszynowych. Tego typu instrukcja nazywana jest instrukcją przypisania. Jest on używany do obliczania i przechowywania wartości wyrażenia arytmetycznego.

Możemy również używać instrukcji sterujących do kontrolowania kolejności przetwarzania. Wyrażenia takie jak if i switch pozwalają komputerowi na podejmowanie prostych decyzji. Wyrażenia mogą być powtarzane w kółko przez użycie pętli, takich jak while i for.

Grupy wyrażeń mogą być zawijane w celu utworzenia funkcji. W ten sposób musimy tylko raz napisać funkcję ogólnego przeznaczenia do rysowania prostokąta, a następnie możemy ją ponownie wykorzystać za każdym razem, gdy chcemy narysować nowy prostokąt.

C zapewnia programowi bogaty zestaw standardowych funkcji, które wykonują typowe funkcje, takie jak wyszukiwanie, sortowanie, wprowadzanie i wyprowadzanie.

Zbiór powiązanych funkcji można zgrupować w jednym pliku źródłowym. Wiele plików źródłowych może być kompilowanych i łączonych razem w celu utworzenia programu.

Jednym z głównych celów języka C jest organizowanie instrukcji w komponenty wielokrotnego użytku. W końcu możesz pisać programy znacznie szybciej, jeśli możesz „pożyczyć” większość swojego kodu z innego miejsca. Grupy funkcji wielokrotnego użytku mogą być łączone w biblioteki. W ten sposób, gdy potrzebujesz, na przykład, procedury sortowania, możesz pobrać standardową funkcję qsort z biblioteki i połączyć ją ze swoim programem.

Deklaracje danych, struktury i instrukcje sterujące oraz inne elementy języka C nie służą komputerowi. Komputer nie potrafi odróżnić miliona przypadkowych bajtów od prawdziwego programu. Wszystkie elementy języka C zostały zaprojektowane w taki sposób, aby umożliwić programiście jasne wyrażanie i organizowanie swoich pomysłów w sposób dostosowany do niego, a nie do komputera.

Organizacja jest kluczem do pisania dobrych programów. Na przykład, w tej książce wiesz, że spis treści znajduje się z przodu, a indeks z tyłu. Używamy tej struktury, ponieważ książki są zorganizowane w ten sposób. Organizacja sprawia, że ta książka jest łatwiejsza w użyciu.

Język C pozwala organizować swoje programy za pomocą prostej, ale potężnej składni. Ta książka wykracza poza składnię języka C i uczy zasad stylu, które umożliwiają tworzenie bardzo czytelnych i niezawodnych programów. Łącząc potężną składnię z dobrym stylem programowania, można tworzyć potężne programy, które wykonują złożone i wspaniałe operacje, a jednocześnie są zorganizowane w taki sposób, że łatwo je zrozumieć, gdy nadchodzi czas zmian.

.

Leave a Reply