Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
C. Leksykon
kieszonkowy
Autorzy: Peter Prinz, Ulla Kirch-Prinz
Tumaczenie: Piotr Imiela
ISBN: 83-7361-083-9
Tytu oryginau: C Pocket Reference
Format: B5, stron: 164
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Wprowadzenie......................................................................... 7
Podstawy.................................................................................. 9
Struktura programu w jzyku C...............................................................9
Zbiory znakw ..........................................................................................11
Identyfikatory ............................................................................................13
Rodzaje i zasig identyfikatorw ...........................................................15
Podstawowe typy................................................................. 17
Typy cakowite..........................................................................................17
Typy rzeczywiste i zespolone.................................................................19
Typ void .....................................................................................................22
Stae......................................................................................... 23
Stae cakowite...........................................................................................23
Stae zmiennopozycyjne ..........................................................................25
Stae znakowe i literay napisowe..........................................................26
Wyraenia i operatory......................................................... 28
Operatory arytmetyczne ..........................................................................30
Operatory przypisania.............................................................................32
Operatory relacji .......................................................................................34
Operatory logiczne ...................................................................................35
Operatory bitowe......................................................................................36
Operatory dostpu do pamici...............................................................38
Pozostae operatory ..................................................................................39
Konwersje typw.................................................................. 42
Promocja cakowita...................................................................................42
Zwyke konwersje arytmetyczne............................................................43
Konwersja typw w przypadku przypisa i wskanikw ................44
Spis treci
Instrukcje................................................................................ 45
Bloki i instrukcje wyraeniowe ..............................................................45
Skoki............................................................................................................46
Ptle.............................................................................................................49
Skoki bezwarunkowe ...............................................................................52
Deklaracje .............................................................................. 54
Oglna skadnia i przykady...................................................................55
Deklaracje zoone....................................................................................56
Zmienne................................................................................... 57
Klasy pamici ............................................................................................57
Inicjalizacja.................................................................................................58
Typy pochodne....................................................................... 60
Typy wyliczeniowe ..................................................................................60
Struktury, unie i pola bitowe ..................................................................61
Tablice.........................................................................................................67
Wskaniki...................................................................................................70
Kwalifikatory typw oraz definicje typw...........................................74
Funkcje .................................................................................... 77
Prototypy funkcji ......................................................................................78
Definicje funkcji.........................................................................................79
Wywoania funkcji....................................................................................82
Funkcje o zmiennej liczbie argumentw...............................................83
czenie identyfikatorw.................................................... 86
Dyrektywy preprocesora ..................................................... 87
Biblioteka standardowa...................................................... 97
Standardowe pliki nagwkowe........................................ 97
Wejcie i wyjcie................................................................... 98
Obsuga bdw w funkcjach wejcia-wyjcia ...................................100
Oglne funkcje dostpu do plikw......................................................101
Plikowe funkcje wejcia-wyjcia...........................................................104
C. Leksykon kieszonkowy
Spis treci
C.
Leksykon kieszonkowy
Wprowadzenie
Jzyk programowania C zosta opracowany w latach siedemdziesitych 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 jzyka C sigaj nieposiadajcego typw jzyka
programowania BCPL (ang. Basic Combined Programming Language,
ktrego autorem by M. Richards) oraz jzyka B (opracowanego
przez K. Thompsona). W 1978 roku Brian Kernighan i Dennis
Ritchie przedstawili pierwszy dostpny publicznie opis jzyka C,
znany obecnie jako standard K&R.
C jest jzykiem o wysokim stopniu przenonoci, ukierunkowanym na architektur wspczesnych komputerw. Obecnie jzyk
sam w sobie jest stosunkowo may i posiada niewiele elementw
zwizanych ze sprztem. Nie zawiera na przykad instrukcji wejcia-wyjcia ani technik zarzdzania pamici. Funkcje realizujce te zadania s dostpne w obszernej standardowej bibliotece
jzyka C.
Konstrukcja jzyka C posiada istotne zalety:
kod rdowy jest w duym stopniu przenony,
kod maszynowy jest efektywny,
kompilatory jzyka C s dostpne dla wszystkich istniejcych systemw.
Wprowadzenie
Konwencje typograficzne
W ksice stosowane s nastpujce konwencje typograficzne:
Kursywa
Jest stosowana przy wprowadzaniu nowych poj oraz do
wyrniania nazw plikw.
Czcionka o staej szerokoci znakw
Jest uywana w kodzie programw w jzyku C oraz w nazwach funkcji i dyrektyw.
Kursywa o staej szerokoci znakw
Oznacza wymienne elementy w obrbie skadni kodu.
Pogrubiona czcionka o staej szerokoci znakw
Wykorzystywana jest w celu zwrcenia szczeglnej uwagi
na wyrnione fragmenty kodu.
4
C. Leksykon kieszonkowy
Podstawy
Program w jzyku C skada si z odrbnych blokw skadowych,
nazywanych funkcjami, mogcych si wzajemnie wywoywa.
Kada funkcja realizuje okrelone zadanie. Gotowe funkcje s
dostpne w standardowej bibliotece jzyka; pozostae funkcje s
w miar potrzeby tworzone przez programist. Szczegln nazw funkcji jest main() oznacza ona pierwsz funkcj, ktra
jest wywoywana podczas uruchamiania programu. Wszystkie
pozostae funkcje s podprogramami.
C. Leksykon kieszonkowy
w pliku. Ukad kodu rdowego na przykad miejsca, w ktrych amane s wiersze, czy te stosowanie wci jest nieistotny. Wyjtek od tej reguy stanowi jednak dyrektywy preprocesora. S one poleceniami przeznaczonymi do wykonania przez
preprocesor danego programu przed kompilacj, a kade z nich
zajmuje jeden wiersz, rozpoczynajcy si znakiem #.
Komentarze s dowolnymi cigami znakw, zawartymi pomidzy parami znakw /* i */ lub znajdujcymi si pomidzy znakami // a kocem biecego wiersza. Na wstpnych etapach
translacji, zanim jeszcze zostanie utworzony jakikolwiek kod wynikowy, kady komentarz jest zastpowany pojedyncz spacj.
Nastpnie wykonywane s dyrektywy preprocesora.
Zbiory znakw
Jzyk ANSI C okrela dwa zbiory znakw. Pierwszym z nich jest
rdowy zbir znakw (ang. source character set), bdcy zbiorem
znakw, ktre mog zosta uyte w pliku rdowym. Drugim
jest natomiast zbir znakw wykonania programu (ang. execution
character set), skadajcy si z wszystkich znakw interpretowanych w trakcie wykonywania programu bdcych na przykad znakami zawartymi w staych tekstowych.
Kady z tych zbiorw znakw zawiera w sobie podstawowy zbir
znakw (ang. basic character set), obejmujcy:
52 wielkie i mae litery alfabetu aciskiego:
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
Podstawy
"
=
#
>
%
?
&
[
'
\
(
]
)
^
*
_
+
{
,
|
.
~
Pi niewidocznych znakw:
odstp, tabulacja pozioma, tabulacja pionowa, znak
nowego wiersza, znak wysuwu strony.
Dodatkowo, podstawowy zbir znakw wykonania programu
zawiera:
Pusty znak \0, koczcy cig znakw.
Znaki sterujce, reprezentowane za pomoc prostych sekwencji sterujcych (ang. escape sequences), przedstawionych w tabeli 1., umoliwiajcych sterowanie urzdzeniami wyjciowymi, takimi jak terminale lub drukarki.
Tabela 1. Standardowe sekwencje sterujce
Sekwencja
sterujca
Dziaanie
w przypadku
terminalu
Sekwencja
sterujca
Dziaanie
w przypadku
terminalu
\a
\'
Znak '
\b
Alarm
(sygna dwikowy)
Znak cofania
\"
Znak "
\f
Wysuw strony
\?
Znak ?
\n
\r
\t
Tabulacja pozioma
\v
Tabulacja pionowa
\o \oo \ooo
(o cyfra semkowa)
\xh..
(h.. cig cyfr
szesnastkowych)
Znak \
Znak o podanym
kodzie semkowym
Znak o podanym
kodzie
szesnastkowym
C. Leksykon kieszonkowy
??=
??(
??/
??)
??'
??<
??!
??>
??
Znaczenie
Identyfikatory
Identyfikatorami s nazwy zmiennych, funkcji, makroinstrukcji,
typw itd. Ich tworzenie podlega nastpujcym reguom:
Podstawy
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 zewntrzne, czyli identyfikatory funkcji i zmiennych czonych zewntrznie, mog podlega dodatkowym ograniczeniom,
w zalenoci od uywanego programu czcego w przenonych programach, napisanych w jzyku C, nazwy zewntrzne
powinny by dobierane w taki sposb, by znaczenie miao tylko
ich pierwszych osiem znakw, rwnie w przypadku gdy program czcy nie rozrnia wielkich i maych liter.
10
C. Leksykon kieszonkowy
Te same nazwy mog by rwnie uyte jako nazwy skadowych rnych struktur.
Kady identyfikator znajdujcy si w kodzie rdowym posiada
swj zasig (ang. scope). Zasigiem nazywamy t cz programu,
w ktrej mona uy danego identyfikatora. Poniej wymieniono
cztery moliwe zasigi identyfikatorw:
Podstawy
11
Prototyp funkcji
Identyfikatory znajdujce si na licie deklaracji argumentw prototypu funkcji (nie definicji funkcji) posiadaj
zasig prototypu funkcji. Poniewa identyfikatory te nie maj
adnego znaczenia poza samym prototypem, s tylko czym
wicej ni komentarzami.
Funkcja
Zasig funkcji posiadaj jedynie nazwy etykiet. Ich uycie jest
ograniczone do bloku funkcji, w ktrym etykiety te zostay
zdefiniowane. Nazwy etykiet musz by unikatowe w obrbie funkcji. Instrukcja goto powoduje skok do instrukcji oznaczonej etykiet, znajdujcej si w obrbie tej samej funkcji.
Blok
Identyfikatory nie bdce etykietami, zadeklarowane w obrbie bloku, posiadaj zasig bloku. Argumenty definicji funkcji
maj rwnie zasig bloku. Zasig bloku rozpoczyna si
deklaracj identyfikatora, natomiast koczy si zamykajcym nawiasem klamrowym (}).
Plik
Identyfikatory zadeklarowane na zewntrz wszystkich blokw i list argumentw posiadaj zasig pliku. Zasig pliku
rozpoczyna si w miejscu deklaracji identyfikatora i rozciga si do koca pliku rdowego.
Identyfikator nie bdcy nazw etykiety nie musi by widoczny
w caym swoim zasigu. Jeeli, na przykad, identyfikator tego
samego rodzaju i posiadajcy tak sam nazw, jak istniejcy ju
identyfikator, zostanie zadeklarowany w zagniedonym bloku,
to zewntrzna deklaracja identyfikatora zostanie tymczasowo zasonita. Staje si ona ponownie widoczna w miejscu, gdzie koczy
si zasig wewntrznej deklaracji.
12
C. Leksykon kieszonkowy