SlideShare a Scribd company logo
1 of 14
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   C. Leksykon
                                         kieszonkowy
           KATALOG KSI¥¯EK
                                         Autorzy: Peter Prinz, Ulla Kirch-Prinz
                      KATALOG ONLINE     T³umaczenie: Piotr Imiela
                                         ISBN: 83-7361-083-9
       ZAMÓW DRUKOWANY KATALOG           Tytu³ orygina³u: C Pocket Reference
                                         Format: B5, stron: 164

              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA     Ksi¹¿ka „C. Leksykon kieszonkowy” sk³ada siê z dwóch czê ci: zwiêz³ego opisu jêzyka
                                         C oraz tematycznie u³o¿onego przewodnika po bibliotece standardowej. Opis jêzyka
                                         zosta³ przedstawiony na podstawie standardu ANSI i zawiera wprowadzone pó niej
         CENNIK I INFORMACJE             rozszerzenia. Do³¹czony skorowidz u³atwia szybkie znalezienie informacji na temat
                                         funkcji, typów i innych interesuj¹cych elementów sk³adni.
                   ZAMÓW INFORMACJE      Ksi¹¿ka przedstawia:
                     O NOWO CIACH           • Podstawy jêzyka C
                                            • Typy danych
                       ZAMÓW CENNIK         • Wyra¿enia i operatory
                                            • Instrukcje jêzyka C
                                            • Deklaracje
                 CZYTELNIA                  • Funkcje
                                            • Dyrektywy preprocesora
          FRAGMENTY KSI¥¯EK ONLINE          • Biblioteka standardowa
                                         Gdy zawiedzie Ciê pamiêæ i zapomnisz sk³adni danej instrukcji, „C. Leksykon
                                         kieszonkowy” przyjdzie Ci z pomoc¹. Dziêki tej ksi¹¿ce szybko znajdziesz potrzebne
                                         informacje, bez konieczno ci wertowania setek stron podrêczników.




Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści


Wprowadzenie......................................................................... 7
Podstawy.................................................................................. 9
     Struktura programu w języku C...............................................................9
     Zbiory znaków ..........................................................................................11
     Identyfikatory ............................................................................................13
     Rodzaje i zasięg identyfikatorów ...........................................................15

Podstawowe typy................................................................. 17
     Typy całkowite..........................................................................................17
     Typy rzeczywiste i zespolone.................................................................19
     Typ void .....................................................................................................22

Stałe......................................................................................... 23
     Stałe całkowite...........................................................................................23
     Stałe zmiennopozycyjne ..........................................................................25
     Stałe znakowe i literały napisowe..........................................................26

Wyrażenia i operatory......................................................... 28
     Operatory arytmetyczne ..........................................................................30
     Operatory przypisania.............................................................................32
     Operatory relacji .......................................................................................34
     Operatory logiczne ...................................................................................35
     Operatory bitowe......................................................................................36
     Operatory dostępu do pamięci...............................................................38
     Pozostałe operatory ..................................................................................39

Konwersje typów.................................................................. 42
     Promocja całkowita...................................................................................42
     Zwykłe konwersje arytmetyczne............................................................43
     Konwersja typów w przypadku przypisań i wskaźników ................44




Spis treści                                                                                                        3
Instrukcje................................................................................ 45
     Bloki i instrukcje wyrażeniowe ..............................................................45
     Skoki............................................................................................................46
     Pętle.............................................................................................................49
     Skoki bezwarunkowe ...............................................................................52

Deklaracje .............................................................................. 54
     Ogólna składnia i przykłady...................................................................55
     Deklaracje złożone....................................................................................56

Zmienne................................................................................... 57
     Klasy pamięci ............................................................................................57
     Inicjalizacja.................................................................................................58

Typy pochodne....................................................................... 60
     Typy wyliczeniowe ..................................................................................60
     Struktury, unie i pola bitowe ..................................................................61
     Tablice.........................................................................................................67
     Wskaźniki...................................................................................................70
     Kwalifikatory typów oraz definicje typów...........................................74

Funkcje .................................................................................... 77
     Prototypy funkcji ......................................................................................78
     Definicje funkcji.........................................................................................79
     Wywołania funkcji....................................................................................82
     Funkcje o zmiennej liczbie argumentów...............................................83

Łączenie identyfikatorów.................................................... 86
Dyrektywy preprocesora ..................................................... 87
Biblioteka standardowa...................................................... 97
Standardowe pliki nagłówkowe........................................ 97
Wejście i wyjście................................................................... 98
     Obsługa błędów w funkcjach wejścia-wyjścia ...................................100
     Ogólne funkcje dostępu do plików......................................................101
     Plikowe funkcje wejścia-wyjścia...........................................................104




4                                                                                C. Leksykon kieszonkowy
Zakresy liczb oraz ich klasyfikacja................................ 114
    Zakresy wartości typów całkowitych ..................................................114
    Zakres i precyzja typów zmiennopozycyjnych rzeczywistych .......116
    Klasyfikacja liczb zmiennopozycyjnych..............................................116

Funkcje matematyczne....................................................... 119
    Funkcje matematyczne dla typów całkowitych .................................119
    Funkcje matematyczne dla typów rzeczywistych .............................120
    Optymalizacja efektywności wykonywania.......................................123
    Funkcje matematyczne dla typów zmiennopozycyjnych
      zespolonych ..........................................................................................124
    Makroinstrukcje niezależne od typów ................................................125
    Obsługa błędów w funkcjach matematycznych.................................126
    Środowisko zmiennopozycyjne............................................................127

Klasyfikacja znaków i zmiana ich wielkości............... 131
Obsługa łańcuchów ............................................................ 133
    Konwersja pomiędzy łańcuchami i wartościami liczbowymi .........136
    Przekształcenia znaków wielobajtowych............................................138

Wyszukiwanie i sortowanie............................................. 140
Obsługa bloków pamięci................................................... 141
Dynamiczne zarządzanie pamięcią................................. 142
Czas i data........................................................................... 143
Sterowanie procesami........................................................ 144
    Komunikacja z systemem operacyjnym..............................................145
    Sygnały .....................................................................................................146
    Skoki nielokalne......................................................................................148
    Obsługa błędów w funkcjach systemowych..........................................149

Ustawienia narodowe........................................................ 150
Skorowidz............................................................................. 155




Spis treści                                                                                                       5
C.
                                Leksykon kieszonkowy




Wprowadzenie
Język programowania C został opracowany w latach siedem-
dziesiątych przez Dennisa Ritchiego z Bell Labs (w Murray Hill,
w stanie New Jersey) podczas przygotowywania implementacji
systemu operacyjnego Unix, przeznaczonej dla komputera DEC
PDP-11. Korzenie języka C sięgają nieposiadającego typów języka
programowania BCPL (ang. Basic Combined Programming Language,
którego autorem był M. Richards) oraz języka B (opracowanego
przez K. Thompsona). W 1978 roku Brian Kernighan i Dennis
Ritchie przedstawili pierwszy dostępny publicznie opis języka C,
znany obecnie jako standard K&R.
C jest językiem o wysokim stopniu przenośności, ukierunkowa-
nym na architekturę współczesnych komputerów. Obecnie język
sam w sobie jest stosunkowo mały i posiada niewiele elementów
związanych ze sprzętem. Nie zawiera na przykład instrukcji wej-
ścia-wyjścia ani technik zarządzania pamięcią. Funkcje realizu-
jące te zadania są dostępne w obszernej standardowej bibliotece
języka C.
Konstrukcja języka C posiada istotne zalety:
   • kod źródłowy jest w dużym stopniu przenośny,

   • kod maszynowy jest efektywny,
   • kompilatory języka C są dostępne dla wszystkich istnieją-
     cych systemów.


Wprowadzenie                                                  3
Pierwsza część leksykonu opisuje język C, natomiast jego drugą
część poświęcono standardowej bibliotece języka C. Język został
opisany na podstawie standardu ISO X3.159. Standard ten odpo-
wiada międzynarodowemu standardowi ISO/IEC 9899, który
został przyjęty przez Międzynarodową Organizację Normaliza-
cyjną w 1990 roku, a następnie został poprawiony w latach 1995
i 1999. Standard ISO/IEC 9899 można zamówić za pośrednic-
twem internetowej witryny ANSI, znajdującej się pod adresem
http://webstore.ansi.org.
Standard ustanowiony w 1995 roku jest obecnie obsługiwany przez
wszystkie popularne kompilatory języka C. Natomiast w wielu
kompilatorach języka C nie zostały jeszcze zaimplementowane
nowe rozszerzenia języka, zdefiniowane w opublikowanej w 1999
roku wersji standardu (nazywanej w skrócie „ANSI C99”), w zwią-
zku z czym zostały one w niniejszej książce w specjalny sposób
oznaczone. Nowe typy, funkcje i makroinstrukcje, wprowadzone
przez standard ANSI C99, oznaczono gwiazdką umieszczoną
w nawiasie (*).


Konwencje typograficzne
W książce stosowane są następujące konwencje typograficzne:
Kursywa
     Jest stosowana przy wprowadzaniu nowych pojęć oraz do
     wyróżniania nazw plików.
Czcionka o stałej szerokości znaków
    Jest używana w kodzie programów w języku C oraz w na-
    zwach funkcji i dyrektyw.
Kursywa o stałej szerokości znaków
    Oznacza wymienne elementy w obrębie składni kodu.
Pogrubiona czcionka o stałej szerokości znaków
    Wykorzystywana jest w celu zwrócenia szczególnej uwagi
    na wyróżnione fragmenty kodu.


4                                         C. Leksykon kieszonkowy
Podstawy
Program w języku C składa się z odrębnych bloków składowych,
nazywanych funkcjami, mogących się wzajemnie wywoływać.
Każda funkcja realizuje określone zadanie. Gotowe funkcje są
dostępne w standardowej bibliotece języka; pozostałe funkcje są
w miarę potrzeby tworzone przez programistę. Szczególną na-
zwą funkcji jest main() — oznacza ona pierwszą funkcję, która
jest wywoływana podczas uruchamiania programu. Wszystkie
pozostałe funkcje są podprogramami.


Struktura programu w języku C
Rysunek 1. prezentuje strukturę programu w języku C. Przedsta-
wiony program składa się z funkcji: main() oraz showPage().
Program drukuje początek pliku tekstowego, którego nazwa
została podana w wierszu poleceń podczas jego uruchomienia.
Program źródłowy w języku C składa się z instrukcji (ang. state-
ments) tworzących funkcje, a także niezbędnych deklaracji oraz
dyrektyw preprocesora. W przypadku niewielkich programów,
kod źródłowy jest zapisywany w pojedynczym pliku źródłowym
(ang. source file). Większe programy napisane w języku C skła-
dają się z wielu plików źródłowych, które mogą być oddzielnie
redagowane i kompilowane. Każdy z takich plików źródłowych
zawiera funkcje tworzące pewną logiczną całość — np. funkcje
wyprowadzające informacje do terminala. Informacje, które są
potrzebne w wielu plikach źródłowych — takie jak deklaracje
— umieszczane są w plikach nagłówkowych. Mogą one następ-
nie zostać włączone do każdego pliku źródłowego za pomocą
dyrektywy #include.
Nazwy plików źródłowych posiadają zakończenie .c, natomiast
nazwy plików nagłówkowych kończą się na .h. Plik źródłowy
wraz z włączonymi do niego plikami nagłówkowymi nazywany
jest jednostką translacji.


Podstawy                                                      5
Rysunek 1. Program w języku C
Nie ma określonej z góry kolejności, w której muszą być definio-
wane funkcje. Funkcja showPage(), przedstawiona na rysunku 1.,
mogłaby znajdować się również przed funkcją main(). Funkcje
nie mogą być jednak definiowane wewnątrz innych funkcji.
Kompilator, przetwarzając kolejno każdy z plików źródłowych,
rozkłada jego zawartość na leksemy (elementy leksykalne — ang.
tokens), którymi są m.in. nazwy funkcji i operatory. Leksemy
mogą być oddzielone od siebie jednym lub większą liczbą niewi-
docznych znaków, takich jak spacja, tabulacja lub znak nowego
wiersza. Tak więc, znaczenie ma jedynie kolejność leksemów


6                                          C. Leksykon kieszonkowy
w pliku. Układ kodu źródłowego — na przykład miejsca, w któ-
rych łamane są wiersze, czy też stosowanie wcięć — jest nie-
istotny. Wyjątek od tej reguły stanowią jednak dyrektywy prepro-
cesora. Są one poleceniami przeznaczonymi do wykonania przez
preprocesor danego programu przed kompilacją, a każde z nich
zajmuje jeden wiersz, rozpoczynający się znakiem #.
Komentarze są dowolnymi ciągami znaków, zawartymi pomię-
dzy parami znaków /* i */ lub znajdującymi się pomiędzy zna-
kami // a końcem bieżącego wiersza. Na wstępnych etapach
translacji, zanim jeszcze zostanie utworzony jakikolwiek kod wy-
nikowy, każdy komentarz jest zastępowany pojedynczą spacją.
Następnie wykonywane są dyrektywy preprocesora.


Zbiory znaków
Język ANSI C określa dwa zbiory znaków. Pierwszym z nich jest
źródłowy zbiór znaków (ang. source character set), będący zbiorem
znaków, które mogą zostać użyte w pliku źródłowym. Drugim
jest natomiast zbiór znaków wykonania programu (ang. execution
character set), składający się z wszystkich znaków interpretowa-
nych w trakcie wykonywania programu — będących na przy-
kład znakami zawartymi w stałych tekstowych.
Każdy z tych zbiorów znaków zawiera w sobie podstawowy zbiór
znaków (ang. basic character set), obejmujący:
   • 52 wielkie i małe litery alfabetu łacińskiego:
       A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
       a b c d e f g h i j k l m n o p q r s t u v w x y z

   • Dziesięć cyfr dziesiętnych (w przypadku których wartość
     każdego znaku po 0 jest o jeden większa od wartości po-
     przedniej cyfry):
       0   1   2   3   4   5   6   7   8   9



Podstawy                                                       7
• 29 wymienionych poniżej znaków graficznych:
        !   "   #   %   &   '      (     )   *     +   ,    –   .   /    :    ;
        <   =   >   ?   [         ]     ^   _     {   |    }   ~

    • Pięć niewidocznych znaków:
        odstęp, tabulacja pozioma, tabulacja pionowa, znak
        nowego wiersza, znak wysuwu strony.
Dodatkowo, podstawowy zbiór znaków wykonania programu
zawiera:
    • Pusty znak 0, kończący ciąg znaków.

    • Znaki sterujące, reprezentowane za pomocą prostych sekwen-
      cji sterujących (ang. escape sequences), przedstawionych w ta-
      beli 1., umożliwiających sterowanie urządzeniami wyjścio-
      wymi, takimi jak terminale lub drukarki.
Tabela 1. Standardowe sekwencje sterujące
Sekwencja   Działanie                  Sekwencja                Działanie
sterująca   w przypadku                sterująca                w przypadku
            terminalu                                           terminalu

a          Alarm                      '                       Znak '
            (sygnał dźwiękowy)
b          Znak cofania               "                       Znak "
f          Wysuw strony               ?                       Znak ?
n          Znak nowego wiersza                               Znak 
r          Znak powrotu karetki       o oo ooo              Znak o podanym
                                       (o — cyfra ósemkowa)     kodzie ósemkowym
t          Tabulacja pozioma          xh..                    Znak o podanym
                                       (h.. — ciąg cyfr         kodzie
                                       szesnastkowych)          szesnastkowym
v          Tabulacja pionowa




8                                                          C. Leksykon kieszonkowy
Wszelkie inne znaki — w zależności od konkretnego kompilatora
— mogą być używane w komentarzach, ciągach znaków i sta-
łych napisowych. Mogą one na przykład zawierać symbol dolara
lub znaki diakrytyczne. Użycie takich znaków może mieć jednak
wpływ na przenośność programu.
Zbiór wszystkich możliwych do wykorzystania znaków jest nazy-
wany powiększonym zbiorem znaków (ang. extended character set)
i stanowi on zawsze nadzbiór podstawowego zbioru znaków.
Niektóre języki wykorzystują znaki, do zapamiętania których
potrzeba więcej niż jednego bajtu. Takie znaki wielobajtowe (ang.
multibyte characters) mogą znajdować się w powiększonym zbio-
rze znaków. Ponadto, standard ANSI C99 udostępnia typ cał-
kowity wchar_t (ang. wide character type — rozszerzony typ zna-
kowy), o wielkości wystarczającej do reprezentowania znaków
zawartych w powiększonym zbiorze znaków. Często stosowany
jest nowoczesny system kodowania znaków Unicode, poszerza-
jący standardowy kod ASCII w sposób umożliwiający reprezenta-
cję około 35 000 znaków pochodzących z 24 krajów.
C99 wprowadza również sekwencje trójznaków (ang. trigraph sequen-
ces). Sekwencje te, wymienione w tabeli 2., mogą być używane
do wprowadzania znaków graficznych, które nie są dostępne na
wszystkich klawiaturach. Na przykład, do wprowadzenia sym-
bolu „potoku” | można użyć sekwencji ??!.
Tabela 2. Sekwencje trójznaków
Trójznak    ??=   ??(   ??/      ??)   ??'   ??<   ??!   ??>   ??–
Znaczenie   #     [             ]     ^     {     |     }     ~



Identyfikatory
Identyfikatorami są nazwy zmiennych, funkcji, makroinstrukcji,
typów itd. Ich tworzenie podlega następującym regułom:


Podstawy                                                             9
• Identyfikator składa się z ciągu liter (od A do Z i od a do z),
       cyfr (od 0 do 9) oraz znaków podkreślenia (_).

     • Pierwszym znakiem identyfikatora nie może być cyfra.
     • W identyfikatorach rozróżniane są małe i wielkie litery.
     • Długość identyfikatora nie jest ograniczona. Jednakże na ogół
       znaczących jest tylko jego pierwszych 31 znaków.
Słowa kluczowe (ang. keywords) są słowami zastrzeżonymi i nie
mogą być używane w charakterze identyfikatorów. Poniżej za-
mieszczono listę słów kluczowych języka C:
auto             enum           restrict(*)      unsigned
break            extern         return           void
case             float          short            volatile
char             for            signed           while
const            goto           sizeof           _Bool(*)
continue         if             static           _Complex(*)
default          inline(*)      struct           _Imaginary(*)
do               int            switch
double           long           typedef
else             register       union
Nazwy zewnętrzne, czyli identyfikatory funkcji i zmiennych łączo-
nych zewnętrznie, mogą podlegać dodatkowym ograniczeniom,
w zależności od używanego programu łączącego — w przeno-
śnych programach, napisanych w języku C, nazwy zewnętrzne
powinny być dobierane w taki sposób, by znaczenie miało tylko
ich pierwszych osiem znaków, również w przypadku gdy pro-
gram łączący nie rozróżnia wielkich i małych liter.



10                                              C. Leksykon kieszonkowy
Poniżej podano przykłady identyfikatorów:
     Poprawne: a, DM, dm, FLOAT, _var1, topOfWindow
     Niepoprawne: do, 586_cpu, zähler, nl-flag, US_$


Rodzaje i zasięg identyfikatorów
Każdy identyfikator należy do jednej z podanych poniżej czte-
rech kategorii:
   • Nazwy etykiet.
   • Znaczniki (ang. tags) struktur, unii i wyliczeń. Są to identyfi-
     katory występujące bezpośrednio po słowach kluczowych
     struct, union lub enum (patrz rozdział „Typy pochodne”).

   • Nazwy składowych struktur lub unii. Każda struktura i unia
     posiada odrębną przestrzeń nazw, zawierającą jej składowe.
   • Wszystkie pozostałe identyfikatory, nazywane zwykłymi iden-
     tyfikatorami.
Identyfikatory należące do różnych kategorii mogą być takie same.
Na przykład, nazwa etykiety może zostać również użyta w cha-
rakterze nazwy funkcji. Ponowne użycie identyfikatorów zdarza
się najczęściej w przypadku struktur — ten sam ciąg znaków
może zostać użyty do oznaczenia typu struktury, jednej z jej
składowych, oraz zmiennej — jak w poniższym przykładzie:
 struct person {char *person; /*...*/} person;

Te same nazwy mogą być również użyte jako nazwy składo-
wych różnych struktur.
Każdy identyfikator znajdujący się w kodzie źródłowym posiada
swój zasięg (ang. scope). Zasięgiem nazywamy tę część programu,
w której można użyć danego identyfikatora. Poniżej wymieniono
cztery możliwe zasięgi identyfikatorów:


Podstawy                                                          11
Prototyp funkcji
      Identyfikatory znajdujące się na liście deklaracji argu-
      mentów prototypu funkcji (nie definicji funkcji) posiadają
      zasięg prototypu funkcji. Ponieważ identyfikatory te nie mają
      żadnego znaczenia poza samym prototypem, są tylko czymś
      więcej niż komentarzami.
Funkcja
     Zasięg funkcji posiadają jedynie nazwy etykiet. Ich użycie jest
     ograniczone do bloku funkcji, w którym etykiety te zostały
     zdefiniowane. Nazwy etykiet muszą być unikatowe w obrę-
     bie funkcji. Instrukcja goto powoduje skok do instrukcji ozna-
     czonej etykietą, znajdującej się w obrębie tej samej funkcji.
Blok
       Identyfikatory nie będące etykietami, zadeklarowane w obrę-
       bie bloku, posiadają zasięg bloku. Argumenty definicji funkcji
       mają również zasięg bloku. Zasięg bloku rozpoczyna się
       deklaracją identyfikatora, natomiast kończy się zamykają-
       cym nawiasem klamrowym (}).
Plik
       Identyfikatory zadeklarowane na zewnątrz wszystkich blo-
       ków i list argumentów posiadają zasięg pliku. Zasięg pliku
       rozpoczyna się w miejscu deklaracji identyfikatora i roz-
       ciąga się do końca pliku źródłowego.
Identyfikator nie będący nazwą etykiety nie musi być widoczny
w całym swoim zasięgu. Jeżeli, na przykład, identyfikator tego
samego rodzaju i posiadający taką samą nazwę, jak istniejący już
identyfikator, zostanie zadeklarowany w zagnieżdżonym bloku,
to zewnętrzna deklaracja identyfikatora zostanie tymczasowo za-
słonięta. Staje się ona ponownie widoczna w miejscu, gdzie kończy
się zasięg wewnętrznej deklaracji.




12                                             C. Leksykon kieszonkowy

More Related Content

What's hot

Anatomia PC. Kompendium. Wydanie III
Anatomia PC. Kompendium. Wydanie IIIAnatomia PC. Kompendium. Wydanie III
Anatomia PC. Kompendium. Wydanie III
Wydawnictwo Helion
 
Jak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarki
Jak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarkiJak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarki
Jak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarki
Przemysław Wolny
 
Excel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnikExcel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnik
Wydawnictwo Helion
 
Ustawa Karta Nauczyciela. Komentarz - ebook
Ustawa Karta Nauczyciela. Komentarz - ebookUstawa Karta Nauczyciela. Komentarz - ebook
Ustawa Karta Nauczyciela. Komentarz - ebook
e-booksweb.pl
 
Anatomia PC. Wydanie IX
Anatomia PC. Wydanie IXAnatomia PC. Wydanie IX
Anatomia PC. Wydanie IX
Wydawnictwo Helion
 
Prolog. Programowanie
Prolog. ProgramowanieProlog. Programowanie
Prolog. Programowanie
Wydawnictwo Helion
 
Hack Proofing XML. Edycja polska
Hack Proofing XML. Edycja polskaHack Proofing XML. Edycja polska
Hack Proofing XML. Edycja polska
Wydawnictwo Helion
 
Excel 2007 PL. 222 gotowe rozwiązania
Excel 2007 PL. 222 gotowe rozwiązaniaExcel 2007 PL. 222 gotowe rozwiązania
Excel 2007 PL. 222 gotowe rozwiązania
Wydawnictwo Helion
 
Po prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxGPo prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxG
Wydawnictwo Helion
 
Sekrety języka C# (c sharp) ebook
Sekrety języka C# (c sharp) ebookSekrety języka C# (c sharp) ebook
Sekrety języka C# (c sharp) ebook
e-booksweb.pl
 
Jak działa Linux
Jak działa LinuxJak działa Linux
Jak działa Linux
Wydawnictwo Helion
 
Excel. Funkcje w przykładach
Excel. Funkcje w przykładachExcel. Funkcje w przykładach
Excel. Funkcje w przykładach
Wydawnictwo Helion
 
mod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoramod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratora
Wydawnictwo Helion
 

What's hot (19)

Anatomia PC. Kompendium. Wydanie III
Anatomia PC. Kompendium. Wydanie IIIAnatomia PC. Kompendium. Wydanie III
Anatomia PC. Kompendium. Wydanie III
 
C#. Leksykon kieszonkowy
C#. Leksykon kieszonkowyC#. Leksykon kieszonkowy
C#. Leksykon kieszonkowy
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowane
 
Jak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarki
Jak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarkiJak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarki
Jak zdobyc-popularnosc-i-zjednac-sobie-wyszukiwarki
 
Excel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnikExcel 2003 PL. Ilustrowany przewodnik
Excel 2003 PL. Ilustrowany przewodnik
 
Ustawa Karta Nauczyciela. Komentarz - ebook
Ustawa Karta Nauczyciela. Komentarz - ebookUstawa Karta Nauczyciela. Komentarz - ebook
Ustawa Karta Nauczyciela. Komentarz - ebook
 
Anatomia PC. Wydanie IX
Anatomia PC. Wydanie IXAnatomia PC. Wydanie IX
Anatomia PC. Wydanie IX
 
Efektywne programowanie w języku Java
Efektywne programowanie w języku JavaEfektywne programowanie w języku Java
Efektywne programowanie w języku Java
 
Prolog. Programowanie
Prolog. ProgramowanieProlog. Programowanie
Prolog. Programowanie
 
C#. Ćwiczenia
C#. ĆwiczeniaC#. Ćwiczenia
C#. Ćwiczenia
 
Hack Proofing XML. Edycja polska
Hack Proofing XML. Edycja polskaHack Proofing XML. Edycja polska
Hack Proofing XML. Edycja polska
 
Excel 2007 PL. 222 gotowe rozwiązania
Excel 2007 PL. 222 gotowe rozwiązaniaExcel 2007 PL. 222 gotowe rozwiązania
Excel 2007 PL. 222 gotowe rozwiązania
 
Po prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxGPo prostu Pajączek 5 NxG
Po prostu Pajączek 5 NxG
 
Sekrety języka C# (c sharp) ebook
Sekrety języka C# (c sharp) ebookSekrety języka C# (c sharp) ebook
Sekrety języka C# (c sharp) ebook
 
Po prostu Flash MX
Po prostu Flash MXPo prostu Flash MX
Po prostu Flash MX
 
Jak działa Linux
Jak działa LinuxJak działa Linux
Jak działa Linux
 
Anatomia PC. Kompendium
Anatomia PC. KompendiumAnatomia PC. Kompendium
Anatomia PC. Kompendium
 
Excel. Funkcje w przykładach
Excel. Funkcje w przykładachExcel. Funkcje w przykładach
Excel. Funkcje w przykładach
 
mod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratoramod_rewrite. Podręcznik administratora
mod_rewrite. Podręcznik administratora
 

Viewers also liked

Rozbudowa i naprawa komputerów PC. Wydanie XVI
Rozbudowa i naprawa komputerów PC. Wydanie XVIRozbudowa i naprawa komputerów PC. Wydanie XVI
Rozbudowa i naprawa komputerów PC. Wydanie XVI
Wydawnictwo Helion
 
Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;
Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;
Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;
Wydawnictwo Helion
 
Flash MX. Programowanie
Flash MX. ProgramowanieFlash MX. Programowanie
Flash MX. Programowanie
Wydawnictwo Helion
 
Asembler. Podręcznik programisty
Asembler. Podręcznik programistyAsembler. Podręcznik programisty
Asembler. Podręcznik programisty
Wydawnictwo Helion
 
Wireless Hacking. Edycja polska
Wireless Hacking. Edycja polskaWireless Hacking. Edycja polska
Wireless Hacking. Edycja polska
Wydawnictwo Helion
 
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugieRozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Wydawnictwo Helion
 
Delphi 2005. Kompendium programisty
Delphi 2005. Kompendium programistyDelphi 2005. Kompendium programisty
Delphi 2005. Kompendium programisty
Wydawnictwo Helion
 
Access. Programowanie w VBA
Access. Programowanie w VBAAccess. Programowanie w VBA
Access. Programowanie w VBA
Wydawnictwo Helion
 
Head First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polskaHead First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polska
Wydawnictwo Helion
 
Wyrażenia regularne. Leksykon kieszonkowy
Wyrażenia regularne. Leksykon kieszonkowyWyrażenia regularne. Leksykon kieszonkowy
Wyrażenia regularne. Leksykon kieszonkowy
Wydawnictwo Helion
 
UML dla każdego
UML dla każdegoUML dla każdego
UML dla każdego
Wydawnictwo Helion
 

Viewers also liked (12)

Rozbudowa i naprawa komputerów PC. Wydanie XVI
Rozbudowa i naprawa komputerów PC. Wydanie XVIRozbudowa i naprawa komputerów PC. Wydanie XVI
Rozbudowa i naprawa komputerów PC. Wydanie XVI
 
Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;
Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;
Windows Server 2008. Infrastruktura klucza publicznego &#040;PKI&#041;
 
Flash MX. Programowanie
Flash MX. ProgramowanieFlash MX. Programowanie
Flash MX. Programowanie
 
Asembler. Podręcznik programisty
Asembler. Podręcznik programistyAsembler. Podręcznik programisty
Asembler. Podręcznik programisty
 
Wyciśnij maksimum z Twojego komputera
Wyciśnij maksimum z Twojego komputeraWyciśnij maksimum z Twojego komputera
Wyciśnij maksimum z Twojego komputera
 
Wireless Hacking. Edycja polska
Wireless Hacking. Edycja polskaWireless Hacking. Edycja polska
Wireless Hacking. Edycja polska
 
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugieRozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
 
Delphi 2005. Kompendium programisty
Delphi 2005. Kompendium programistyDelphi 2005. Kompendium programisty
Delphi 2005. Kompendium programisty
 
Access. Programowanie w VBA
Access. Programowanie w VBAAccess. Programowanie w VBA
Access. Programowanie w VBA
 
Head First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polskaHead First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polska
 
Wyrażenia regularne. Leksykon kieszonkowy
Wyrażenia regularne. Leksykon kieszonkowyWyrażenia regularne. Leksykon kieszonkowy
Wyrażenia regularne. Leksykon kieszonkowy
 
UML dla każdego
UML dla każdegoUML dla każdego
UML dla każdego
 

Similar to C. Leksykon kieszonkowy

Język C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalistyJęzyk C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalisty
Wydawnictwo Helion
 
Po prostu Access 2003 PL
Po prostu Access 2003 PLPo prostu Access 2003 PL
Po prostu Access 2003 PL
Wydawnictwo Helion
 
C++. Styl i technika zaawansowanego programowania
C++. Styl i technika zaawansowanego programowaniaC++. Styl i technika zaawansowanego programowania
C++. Styl i technika zaawansowanego programowania
Wydawnictwo Helion
 
SQL w mgnieniu oka
SQL w mgnieniu okaSQL w mgnieniu oka
SQL w mgnieniu oka
Wydawnictwo Helion
 
Tcl-Tk. Programowanie
Tcl-Tk. ProgramowanieTcl-Tk. Programowanie
Tcl-Tk. Programowanie
Wydawnictwo Helion
 
STL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystaniaSTL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystania
Wydawnictwo Helion
 
Algorytmy w C
Algorytmy w CAlgorytmy w C
Algorytmy w C
Wydawnictwo Helion
 
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wydawnictwo Helion
 
Algorytmy. Od podstaw
Algorytmy. Od podstawAlgorytmy. Od podstaw
Algorytmy. Od podstaw
Wydawnictwo Helion
 
Język C. Programowanie
Język C. ProgramowanieJęzyk C. Programowanie
Język C. Programowanie
Wydawnictwo Helion
 
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktykJęzyk C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk
Wydawnictwo Helion
 
C++. Potęga języka. Od przykładu do przykładu
C++. Potęga języka. Od przykładu do przykładuC++. Potęga języka. Od przykładu do przykładu
C++. Potęga języka. Od przykładu do przykładu
Wydawnictwo Helion
 
Bazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaBazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktyka
Wydawnictwo Helion
 
Po prostu Excel 2003 PL
Po prostu Excel 2003 PLPo prostu Excel 2003 PL
Po prostu Excel 2003 PL
Wydawnictwo Helion
 
Język C++. Koncepcje i techniki programowania
Język C++. Koncepcje i techniki programowaniaJęzyk C++. Koncepcje i techniki programowania
Język C++. Koncepcje i techniki programowania
Wydawnictwo Helion
 

Similar to C. Leksykon kieszonkowy (20)

C++. Leksykon kieszonkowy
C++. Leksykon kieszonkowyC++. Leksykon kieszonkowy
C++. Leksykon kieszonkowy
 
Język C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalistyJęzyk C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalisty
 
Po prostu Access 2003 PL
Po prostu Access 2003 PLPo prostu Access 2003 PL
Po prostu Access 2003 PL
 
C++. Styl i technika zaawansowanego programowania
C++. Styl i technika zaawansowanego programowaniaC++. Styl i technika zaawansowanego programowania
C++. Styl i technika zaawansowanego programowania
 
SQL. Szybki start
SQL. Szybki startSQL. Szybki start
SQL. Szybki start
 
SQL w mgnieniu oka
SQL w mgnieniu okaSQL w mgnieniu oka
SQL w mgnieniu oka
 
Tcl-Tk. Programowanie
Tcl-Tk. ProgramowanieTcl-Tk. Programowanie
Tcl-Tk. Programowanie
 
STL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystaniaSTL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystania
 
Algorytmy w C
Algorytmy w CAlgorytmy w C
Algorytmy w C
 
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
 
Algorytmy. Od podstaw
Algorytmy. Od podstawAlgorytmy. Od podstaw
Algorytmy. Od podstaw
 
Język C. Programowanie
Język C. ProgramowanieJęzyk C. Programowanie
Język C. Programowanie
 
Oracle Discoverer
Oracle DiscovererOracle Discoverer
Oracle Discoverer
 
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktykJęzyk C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk
 
SQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowySQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowy
 
C++. Sztuka programowania
C++. Sztuka programowaniaC++. Sztuka programowania
C++. Sztuka programowania
 
C++. Potęga języka. Od przykładu do przykładu
C++. Potęga języka. Od przykładu do przykładuC++. Potęga języka. Od przykładu do przykładu
C++. Potęga języka. Od przykładu do przykładu
 
Bazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktykaBazy danych SQL. Teoria i praktyka
Bazy danych SQL. Teoria i praktyka
 
Po prostu Excel 2003 PL
Po prostu Excel 2003 PLPo prostu Excel 2003 PL
Po prostu Excel 2003 PL
 
Język C++. Koncepcje i techniki programowania
Język C++. Koncepcje i techniki programowaniaJęzyk C++. Koncepcje i techniki programowania
Język C++. Koncepcje i techniki programowania
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
Wydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
Wydawnictwo Helion
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
Wydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Wydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
Wydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Wydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Wydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
Wydawnictwo Helion
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
Wydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
Wydawnictwo Helion
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
Wydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
Wydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
Wydawnictwo Helion
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
Wydawnictwo Helion
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
Wydawnictwo Helion
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
Wydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

C. Leksykon kieszonkowy

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI C. Leksykon kieszonkowy KATALOG KSI¥¯EK Autorzy: Peter Prinz, Ulla Kirch-Prinz KATALOG ONLINE T³umaczenie: Piotr Imiela ISBN: 83-7361-083-9 ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: C Pocket Reference Format: B5, stron: 164 TWÓJ KOSZYK DODAJ DO KOSZYKA Ksi¹¿ka „C. Leksykon kieszonkowy” sk³ada siê z dwóch czê ci: zwiêz³ego opisu jêzyka C oraz tematycznie u³o¿onego przewodnika po bibliotece standardowej. Opis jêzyka zosta³ przedstawiony na podstawie standardu ANSI i zawiera wprowadzone pó niej CENNIK I INFORMACJE rozszerzenia. Do³¹czony skorowidz u³atwia szybkie znalezienie informacji na temat funkcji, typów i innych interesuj¹cych elementów sk³adni. ZAMÓW INFORMACJE Ksi¹¿ka przedstawia: O NOWO CIACH • Podstawy jêzyka C • Typy danych ZAMÓW CENNIK • Wyra¿enia i operatory • Instrukcje jêzyka C • Deklaracje CZYTELNIA • Funkcje • Dyrektywy preprocesora FRAGMENTY KSI¥¯EK ONLINE • Biblioteka standardowa Gdy zawiedzie Ciê pamiêæ i zapomnisz sk³adni danej instrukcji, „C. Leksykon kieszonkowy” przyjdzie Ci z pomoc¹. Dziêki tej ksi¹¿ce szybko znajdziesz potrzebne informacje, bez konieczno ci wertowania setek stron podrêczników. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl
  • 2. Spis treści Wprowadzenie......................................................................... 7 Podstawy.................................................................................. 9 Struktura programu w języku C...............................................................9 Zbiory znaków ..........................................................................................11 Identyfikatory ............................................................................................13 Rodzaje i zasięg identyfikatorów ...........................................................15 Podstawowe typy................................................................. 17 Typy całkowite..........................................................................................17 Typy rzeczywiste i zespolone.................................................................19 Typ void .....................................................................................................22 Stałe......................................................................................... 23 Stałe całkowite...........................................................................................23 Stałe zmiennopozycyjne ..........................................................................25 Stałe znakowe i literały napisowe..........................................................26 Wyrażenia i operatory......................................................... 28 Operatory arytmetyczne ..........................................................................30 Operatory przypisania.............................................................................32 Operatory relacji .......................................................................................34 Operatory logiczne ...................................................................................35 Operatory bitowe......................................................................................36 Operatory dostępu do pamięci...............................................................38 Pozostałe operatory ..................................................................................39 Konwersje typów.................................................................. 42 Promocja całkowita...................................................................................42 Zwykłe konwersje arytmetyczne............................................................43 Konwersja typów w przypadku przypisań i wskaźników ................44 Spis treści 3
  • 3. Instrukcje................................................................................ 45 Bloki i instrukcje wyrażeniowe ..............................................................45 Skoki............................................................................................................46 Pętle.............................................................................................................49 Skoki bezwarunkowe ...............................................................................52 Deklaracje .............................................................................. 54 Ogólna składnia i przykłady...................................................................55 Deklaracje złożone....................................................................................56 Zmienne................................................................................... 57 Klasy pamięci ............................................................................................57 Inicjalizacja.................................................................................................58 Typy pochodne....................................................................... 60 Typy wyliczeniowe ..................................................................................60 Struktury, unie i pola bitowe ..................................................................61 Tablice.........................................................................................................67 Wskaźniki...................................................................................................70 Kwalifikatory typów oraz definicje typów...........................................74 Funkcje .................................................................................... 77 Prototypy funkcji ......................................................................................78 Definicje funkcji.........................................................................................79 Wywołania funkcji....................................................................................82 Funkcje o zmiennej liczbie argumentów...............................................83 Łączenie identyfikatorów.................................................... 86 Dyrektywy preprocesora ..................................................... 87 Biblioteka standardowa...................................................... 97 Standardowe pliki nagłówkowe........................................ 97 Wejście i wyjście................................................................... 98 Obsługa błędów w funkcjach wejścia-wyjścia ...................................100 Ogólne funkcje dostępu do plików......................................................101 Plikowe funkcje wejścia-wyjścia...........................................................104 4 C. Leksykon kieszonkowy
  • 4. Zakresy liczb oraz ich klasyfikacja................................ 114 Zakresy wartości typów całkowitych ..................................................114 Zakres i precyzja typów zmiennopozycyjnych rzeczywistych .......116 Klasyfikacja liczb zmiennopozycyjnych..............................................116 Funkcje matematyczne....................................................... 119 Funkcje matematyczne dla typów całkowitych .................................119 Funkcje matematyczne dla typów rzeczywistych .............................120 Optymalizacja efektywności wykonywania.......................................123 Funkcje matematyczne dla typów zmiennopozycyjnych zespolonych ..........................................................................................124 Makroinstrukcje niezależne od typów ................................................125 Obsługa błędów w funkcjach matematycznych.................................126 Środowisko zmiennopozycyjne............................................................127 Klasyfikacja znaków i zmiana ich wielkości............... 131 Obsługa łańcuchów ............................................................ 133 Konwersja pomiędzy łańcuchami i wartościami liczbowymi .........136 Przekształcenia znaków wielobajtowych............................................138 Wyszukiwanie i sortowanie............................................. 140 Obsługa bloków pamięci................................................... 141 Dynamiczne zarządzanie pamięcią................................. 142 Czas i data........................................................................... 143 Sterowanie procesami........................................................ 144 Komunikacja z systemem operacyjnym..............................................145 Sygnały .....................................................................................................146 Skoki nielokalne......................................................................................148 Obsługa błędów w funkcjach systemowych..........................................149 Ustawienia narodowe........................................................ 150 Skorowidz............................................................................. 155 Spis treści 5
  • 5. C. Leksykon kieszonkowy Wprowadzenie Język programowania C został opracowany w latach siedem- dziesiątych przez Dennisa Ritchiego z Bell Labs (w Murray Hill, w stanie New Jersey) podczas przygotowywania implementacji systemu operacyjnego Unix, przeznaczonej dla komputera DEC PDP-11. Korzenie języka C sięgają nieposiadającego typów języka programowania BCPL (ang. Basic Combined Programming Language, którego autorem był M. Richards) oraz języka B (opracowanego przez K. Thompsona). W 1978 roku Brian Kernighan i Dennis Ritchie przedstawili pierwszy dostępny publicznie opis języka C, znany obecnie jako standard K&R. C jest językiem o wysokim stopniu przenośności, ukierunkowa- nym na architekturę współczesnych komputerów. Obecnie język sam w sobie jest stosunkowo mały i posiada niewiele elementów związanych ze sprzętem. Nie zawiera na przykład instrukcji wej- ścia-wyjścia ani technik zarządzania pamięcią. Funkcje realizu- jące te zadania są dostępne w obszernej standardowej bibliotece języka C. Konstrukcja języka C posiada istotne zalety: • kod źródłowy jest w dużym stopniu przenośny, • kod maszynowy jest efektywny, • kompilatory języka C są dostępne dla wszystkich istnieją- cych systemów. Wprowadzenie 3
  • 6. Pierwsza część leksykonu opisuje język C, natomiast jego drugą część poświęcono standardowej bibliotece języka C. Język został opisany na podstawie standardu ISO X3.159. Standard ten odpo- wiada międzynarodowemu standardowi ISO/IEC 9899, który został przyjęty przez Międzynarodową Organizację Normaliza- cyjną w 1990 roku, a następnie został poprawiony w latach 1995 i 1999. Standard ISO/IEC 9899 można zamówić za pośrednic- twem internetowej witryny ANSI, znajdującej się pod adresem http://webstore.ansi.org. Standard ustanowiony w 1995 roku jest obecnie obsługiwany przez wszystkie popularne kompilatory języka C. Natomiast w wielu kompilatorach języka C nie zostały jeszcze zaimplementowane nowe rozszerzenia języka, zdefiniowane w opublikowanej w 1999 roku wersji standardu (nazywanej w skrócie „ANSI C99”), w zwią- zku z czym zostały one w niniejszej książce w specjalny sposób oznaczone. Nowe typy, funkcje i makroinstrukcje, wprowadzone przez standard ANSI C99, oznaczono gwiazdką umieszczoną w nawiasie (*). Konwencje typograficzne W książce stosowane są następujące konwencje typograficzne: Kursywa Jest stosowana przy wprowadzaniu nowych pojęć oraz do wyróżniania nazw plików. Czcionka o stałej szerokości znaków Jest używana w kodzie programów w języku C oraz w na- zwach funkcji i dyrektyw. Kursywa o stałej szerokości znaków Oznacza wymienne elementy w obrębie składni kodu. Pogrubiona czcionka o stałej szerokości znaków Wykorzystywana jest w celu zwrócenia szczególnej uwagi na wyróżnione fragmenty kodu. 4 C. Leksykon kieszonkowy
  • 7. Podstawy Program w języku C składa się z odrębnych bloków składowych, nazywanych funkcjami, mogących się wzajemnie wywoływać. Każda funkcja realizuje określone zadanie. Gotowe funkcje są dostępne w standardowej bibliotece języka; pozostałe funkcje są w miarę potrzeby tworzone przez programistę. Szczególną na- zwą funkcji jest main() — oznacza ona pierwszą funkcję, która jest wywoływana podczas uruchamiania programu. Wszystkie pozostałe funkcje są podprogramami. Struktura programu w języku C Rysunek 1. prezentuje strukturę programu w języku C. Przedsta- wiony program składa się z funkcji: main() oraz showPage(). Program drukuje początek pliku tekstowego, którego nazwa została podana w wierszu poleceń podczas jego uruchomienia. Program źródłowy w języku C składa się z instrukcji (ang. state- ments) tworzących funkcje, a także niezbędnych deklaracji oraz dyrektyw preprocesora. W przypadku niewielkich programów, kod źródłowy jest zapisywany w pojedynczym pliku źródłowym (ang. source file). Większe programy napisane w języku C skła- dają się z wielu plików źródłowych, które mogą być oddzielnie redagowane i kompilowane. Każdy z takich plików źródłowych zawiera funkcje tworzące pewną logiczną całość — np. funkcje wyprowadzające informacje do terminala. Informacje, które są potrzebne w wielu plikach źródłowych — takie jak deklaracje — umieszczane są w plikach nagłówkowych. Mogą one następ- nie zostać włączone do każdego pliku źródłowego za pomocą dyrektywy #include. Nazwy plików źródłowych posiadają zakończenie .c, natomiast nazwy plików nagłówkowych kończą się na .h. Plik źródłowy wraz z włączonymi do niego plikami nagłówkowymi nazywany jest jednostką translacji. Podstawy 5
  • 8. Rysunek 1. Program w języku C Nie ma określonej z góry kolejności, w której muszą być definio- wane funkcje. Funkcja showPage(), przedstawiona na rysunku 1., mogłaby znajdować się również przed funkcją main(). Funkcje nie mogą być jednak definiowane wewnątrz innych funkcji. Kompilator, przetwarzając kolejno każdy z plików źródłowych, rozkłada jego zawartość na leksemy (elementy leksykalne — ang. tokens), którymi są m.in. nazwy funkcji i operatory. Leksemy mogą być oddzielone od siebie jednym lub większą liczbą niewi- docznych znaków, takich jak spacja, tabulacja lub znak nowego wiersza. Tak więc, znaczenie ma jedynie kolejność leksemów 6 C. Leksykon kieszonkowy
  • 9. w pliku. Układ kodu źródłowego — na przykład miejsca, w któ- rych łamane są wiersze, czy też stosowanie wcięć — jest nie- istotny. Wyjątek od tej reguły stanowią jednak dyrektywy prepro- cesora. Są one poleceniami przeznaczonymi do wykonania przez preprocesor danego programu przed kompilacją, a każde z nich zajmuje jeden wiersz, rozpoczynający się znakiem #. Komentarze są dowolnymi ciągami znaków, zawartymi pomię- dzy parami znaków /* i */ lub znajdującymi się pomiędzy zna- kami // a końcem bieżącego wiersza. Na wstępnych etapach translacji, zanim jeszcze zostanie utworzony jakikolwiek kod wy- nikowy, każdy komentarz jest zastępowany pojedynczą spacją. Następnie wykonywane są dyrektywy preprocesora. Zbiory znaków Język ANSI C określa dwa zbiory znaków. Pierwszym z nich jest źródłowy zbiór znaków (ang. source character set), będący zbiorem znaków, które mogą zostać użyte w pliku źródłowym. Drugim jest natomiast zbiór znaków wykonania programu (ang. execution character set), składający się z wszystkich znaków interpretowa- nych w trakcie wykonywania programu — będących na przy- kład znakami zawartymi w stałych tekstowych. Każdy z tych zbiorów znaków zawiera w sobie podstawowy zbiór znaków (ang. basic character set), obejmujący: • 52 wielkie i małe litery alfabetu łacińskiego: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z • Dziesięć cyfr dziesiętnych (w przypadku których wartość każdego znaku po 0 jest o jeden większa od wartości po- przedniej cyfry): 0 1 2 3 4 5 6 7 8 9 Podstawy 7
  • 10. • 29 wymienionych poniżej znaków graficznych: ! " # % & ' ( ) * + , – . / : ; < = > ? [ ] ^ _ { | } ~ • Pięć niewidocznych znaków: odstęp, tabulacja pozioma, tabulacja pionowa, znak nowego wiersza, znak wysuwu strony. Dodatkowo, podstawowy zbiór znaków wykonania programu zawiera: • Pusty znak 0, kończący ciąg znaków. • Znaki sterujące, reprezentowane za pomocą prostych sekwen- cji sterujących (ang. escape sequences), przedstawionych w ta- beli 1., umożliwiających sterowanie urządzeniami wyjścio- wymi, takimi jak terminale lub drukarki. Tabela 1. Standardowe sekwencje sterujące Sekwencja Działanie Sekwencja Działanie sterująca w przypadku sterująca w przypadku terminalu terminalu a Alarm ' Znak ' (sygnał dźwiękowy) b Znak cofania " Znak " f Wysuw strony ? Znak ? n Znak nowego wiersza Znak r Znak powrotu karetki o oo ooo Znak o podanym (o — cyfra ósemkowa) kodzie ósemkowym t Tabulacja pozioma xh.. Znak o podanym (h.. — ciąg cyfr kodzie szesnastkowych) szesnastkowym v Tabulacja pionowa 8 C. Leksykon kieszonkowy
  • 11. Wszelkie inne znaki — w zależności od konkretnego kompilatora — mogą być używane w komentarzach, ciągach znaków i sta- łych napisowych. Mogą one na przykład zawierać symbol dolara lub znaki diakrytyczne. Użycie takich znaków może mieć jednak wpływ na przenośność programu. Zbiór wszystkich możliwych do wykorzystania znaków jest nazy- wany powiększonym zbiorem znaków (ang. extended character set) i stanowi on zawsze nadzbiór podstawowego zbioru znaków. Niektóre języki wykorzystują znaki, do zapamiętania których potrzeba więcej niż jednego bajtu. Takie znaki wielobajtowe (ang. multibyte characters) mogą znajdować się w powiększonym zbio- rze znaków. Ponadto, standard ANSI C99 udostępnia typ cał- kowity wchar_t (ang. wide character type — rozszerzony typ zna- kowy), o wielkości wystarczającej do reprezentowania znaków zawartych w powiększonym zbiorze znaków. Często stosowany jest nowoczesny system kodowania znaków Unicode, poszerza- jący standardowy kod ASCII w sposób umożliwiający reprezenta- cję około 35 000 znaków pochodzących z 24 krajów. C99 wprowadza również sekwencje trójznaków (ang. trigraph sequen- ces). Sekwencje te, wymienione w tabeli 2., mogą być używane do wprowadzania znaków graficznych, które nie są dostępne na wszystkich klawiaturach. Na przykład, do wprowadzenia sym- bolu „potoku” | można użyć sekwencji ??!. Tabela 2. Sekwencje trójznaków Trójznak ??= ??( ??/ ??) ??' ??< ??! ??> ??– Znaczenie # [ ] ^ { | } ~ Identyfikatory Identyfikatorami są nazwy zmiennych, funkcji, makroinstrukcji, typów itd. Ich tworzenie podlega następującym regułom: Podstawy 9
  • 12. • Identyfikator składa się z ciągu liter (od A do Z i od a do z), cyfr (od 0 do 9) oraz znaków podkreślenia (_). • Pierwszym znakiem identyfikatora nie może być cyfra. • W identyfikatorach rozróżniane są małe i wielkie litery. • Długość identyfikatora nie jest ograniczona. Jednakże na ogół znaczących jest tylko jego pierwszych 31 znaków. Słowa kluczowe (ang. keywords) są słowami zastrzeżonymi i nie mogą być używane w charakterze identyfikatorów. Poniżej za- mieszczono listę słów kluczowych języka C: auto enum restrict(*) unsigned break extern return void case float short volatile char for signed while const goto sizeof _Bool(*) continue if static _Complex(*) default inline(*) struct _Imaginary(*) do int switch double long typedef else register union Nazwy zewnętrzne, czyli identyfikatory funkcji i zmiennych łączo- nych zewnętrznie, mogą podlegać dodatkowym ograniczeniom, w zależności od używanego programu łączącego — w przeno- śnych programach, napisanych w języku C, nazwy zewnętrzne powinny być dobierane w taki sposób, by znaczenie miało tylko ich pierwszych osiem znaków, również w przypadku gdy pro- gram łączący nie rozróżnia wielkich i małych liter. 10 C. Leksykon kieszonkowy
  • 13. Poniżej podano przykłady identyfikatorów: Poprawne: a, DM, dm, FLOAT, _var1, topOfWindow Niepoprawne: do, 586_cpu, zähler, nl-flag, US_$ Rodzaje i zasięg identyfikatorów Każdy identyfikator należy do jednej z podanych poniżej czte- rech kategorii: • Nazwy etykiet. • Znaczniki (ang. tags) struktur, unii i wyliczeń. Są to identyfi- katory występujące bezpośrednio po słowach kluczowych struct, union lub enum (patrz rozdział „Typy pochodne”). • Nazwy składowych struktur lub unii. Każda struktura i unia posiada odrębną przestrzeń nazw, zawierającą jej składowe. • Wszystkie pozostałe identyfikatory, nazywane zwykłymi iden- tyfikatorami. Identyfikatory należące do różnych kategorii mogą być takie same. Na przykład, nazwa etykiety może zostać również użyta w cha- rakterze nazwy funkcji. Ponowne użycie identyfikatorów zdarza się najczęściej w przypadku struktur — ten sam ciąg znaków może zostać użyty do oznaczenia typu struktury, jednej z jej składowych, oraz zmiennej — jak w poniższym przykładzie: struct person {char *person; /*...*/} person; Te same nazwy mogą być również użyte jako nazwy składo- wych różnych struktur. Każdy identyfikator znajdujący się w kodzie źródłowym posiada swój zasięg (ang. scope). Zasięgiem nazywamy tę część programu, w której można użyć danego identyfikatora. Poniżej wymieniono cztery możliwe zasięgi identyfikatorów: Podstawy 11
  • 14. Prototyp funkcji Identyfikatory znajdujące się na liście deklaracji argu- mentów prototypu funkcji (nie definicji funkcji) posiadają zasięg prototypu funkcji. Ponieważ identyfikatory te nie mają żadnego znaczenia poza samym prototypem, są tylko czymś więcej niż komentarzami. Funkcja Zasięg funkcji posiadają jedynie nazwy etykiet. Ich użycie jest ograniczone do bloku funkcji, w którym etykiety te zostały zdefiniowane. Nazwy etykiet muszą być unikatowe w obrę- bie funkcji. Instrukcja goto powoduje skok do instrukcji ozna- czonej etykietą, znajdującej się w obrębie tej samej funkcji. Blok Identyfikatory nie będące etykietami, zadeklarowane w obrę- bie bloku, posiadają zasięg bloku. Argumenty definicji funkcji mają również zasięg bloku. Zasięg bloku rozpoczyna się deklaracją identyfikatora, natomiast kończy się zamykają- cym nawiasem klamrowym (}). Plik Identyfikatory zadeklarowane na zewnątrz wszystkich blo- ków i list argumentów posiadają zasięg pliku. Zasięg pliku rozpoczyna się w miejscu deklaracji identyfikatora i roz- ciąga się do końca pliku źródłowego. Identyfikator nie będący nazwą etykiety nie musi być widoczny w całym swoim zasięgu. Jeżeli, na przykład, identyfikator tego samego rodzaju i posiadający taką samą nazwę, jak istniejący już identyfikator, zostanie zadeklarowany w zagnieżdżonym bloku, to zewnętrzna deklaracja identyfikatora zostanie tymczasowo za- słonięta. Staje się ona ponownie widoczna w miejscu, gdzie kończy się zasięg wewnętrznej deklaracji. 12 C. Leksykon kieszonkowy