adszed│ czas, aby napisaµ pierwszy program. Na razie nie bΩdzie on robi│ nic nadzwyczajnego. Stopniowo zaczniemy go rozbudowywaµ, a przy okazji om≤wiΩ tu najistotniejsze sprawy. Oto nasz pierwszy program:
#include <stdio.h> void main(void) { printf("Anna Miedzianowska"); }
Ten program mo┐emy bez problemu skompilowaµ. Ale efekt mo┐e wydaµ siΩ marny... Czarny ekran zaraz znika i nie mo┐na siΩ przyjrzeµ efektom w│asnej pracy... Dlatego musimy wprowadziµ ma│▒ modyfikacjΩ. Ale najpierw wyja╢niΩ to, co ju┐ zosta│o napisane.
Linijka pierwsza: instrukcja #include poleca kompilatorowi do│▒czyµ do programu plik stdio.h (tzw. pseudonag│≤wkowy), w kt≤rym zawarta jest definicja funkcji printf. Jest tam te┐ wiele innych definicji przer≤┐nych funkcji i jest on jednym z najczΩ╢ciej u┐ywanych plik≤w pseudonag│≤wkowych. Bardzo czΩsto u┐ywa siΩ te┐ plik≤w: conio.h, math.h itp. Zamiast znak≤w nier≤wno╢ci (< >) mo┐na te┐ u┐yµ znaku cudzys│owia (""). Wszystkie pliki *.h znajduj▒ siΩ w podkatalogu INCLUDE. Tak wiΩc pierwsza rzecz, od kt≤rej nale┐y zacz▒c pisanie programu to w│a╢nie dyrektywa #include.
Linijka druga: Tu rozpoczyna siΩ g│≤wna funkcja programu (main()). Musi ona wyst▒piµ w programie dok│adnie 1 raz! Wszystkie instrukcje programowe zawieraj▒ siΩ w jej ciele, czyli miΩdzy nawiasami klamrowymi. Nag│≤wek tej funkcji ma w naszym przypadku postaµ: void main(void). S│owo void oznacza brak parametr≤w i w zasadzie mo┐na je pomin▒µ. Znaczy to, ┐e funkcja g│≤wna nie daje wyniku ┐adnego typu i nie pobiera ┐adnych parametr≤w do poprawnego wywo│ania. Dla przyk│adu deklaracja funkcji main mo┐e wygl▒daµ r≤wnie┐ tak:
Przez d│u┐szy czas mo┐emy siΩ tym jednak nie przejmowaµ i po prostu pisaµ: main()
Linijka czwarta: To cia│o naszej funkcji g│≤wnej. Instrukcja printf kt≤ra sprawia, ┐e okre╢lony tekst zostanie wy╢wietlony na ekranie. Jak ka┐da instrukcja ko±czy siΩ ╢rednikiem.
Linijka trzecia i pi▒ta: Nawiasy klamrowe oznaczaj▒ grupΩ instrukcji. W tym przypadku pokazuj▒ one cia│o funkcji g│≤wnej.
Podsumowuj▒c:
A teraz czas na modyfikacje:
#include <stdio.h> #include <conio.h> main(void) { //to jest komentarz, kt≤ry //ko±czy siΩ na ko±cu linii clrscr(); printf("Anna \nMiedzianowska"); getch(); return 0; }
Efektem skompilowania tego kodu bΩdzie wypisanie na ekranie napisu "Anna Miedzianowska".
Modyfikacja polega│a przede wszystkim na wprowadzeniu nowych funkcji: clrscr() oraz getch(). Ich definicje opisane s▒ w pliku conio.h, dlatego nale┐a│o go dopisaµ na samym pocz▒tku po dyrektywie #include. Co robi▒ dane funkcje? Pierwsza z nich czy╢ci ekran (odpowiednik "cls" w Dosie). Druga zatrzymuje dzia│anie programu i czeka na wci╢niΩcie dowolnego klawisza. Jest jeszcze kilka innych sposob≤w na zatrzymanie pracy programu, aby mo┐na by│o obejrzeµ efekt, np. wpisanie while(!kbhit()); zamiast getch() lub np. getchar();.
To, co pojawi│o siΩ w kodzie przed moim nazwiskiem, to nie jest ┐adna liter≤wka. Efekt widaµ po uruchomieniu programu - nazwisko zosta│o przeniesione do nastΩpnej linijki. \n jest to tzw. znak specjalny. Innym z czΩ╢ciej u┐ywanych znak≤w specjalnych jest np. \t - tabulacja czy \a - kr≤tki sygna│ d╝wiΩkowy.
Po modyfikacji pojawi│o siΩ tak┐e tajemnicze return 0;. Chodzi o to, ┐e skoro funkcja g│≤wna zosta│a zadeklarowana jakby zwraca│a typ int (domy╢lnie), wiΩc na ko±cu programu nale┐y wpisaµ return 0; jako pomy╢lny wynik jej dzia│ania. Bez tego oczywi╢cie nic siΩ nie stanie, wiΩc r≤wnie dobrze mo┐na to pomin▒µ.
Ostatni▒ now▒ spraw▒ jest komentarz. Mo┐na w nim napisaµ co siΩ tylko chce, kompilator z za│o┐enia nie czyta komentarzy. Dla kr≤tkich komentarzy stosuje siΩ najczΩ╢ciej formΩ przedstawion▒ w przyk│adzie: dwa uko╢niki rozpoczynaj▒ komentarz (//), a ko±czy siΩ on samoistnie na koncu linii. Je┐eli komentarz jest d│u┐szy ni┐ jedna linijka nale┐y rozpocz▒µ go znakami /* i zako±czyµ w odpowiednim miejscu znakami: */ Nie jest istotne dla kompilatora, w kt≤rym miejscu napiszemy komentarz.
Podsumowuj▒c:
To tyle, je┐eli chodzi o pierwsz▒ lekcjΩ. Dla ciekawych powiem, ┐e kolory w edytorze dla poszczeg≤lnych wyra┐e± nie s▒ przypadkowe. Kolorem bia│ym sa wyr≤┐niane tzw. s│owa kluczowe, niebieskim tekst cytowany i liczby, zielonym dyrektywy kompilatora, a wszystko inne na ┐≤│to. Je╢li natomiast zaczniemy wpisywaµ co╢ zupe│nie bez sensu, edytor zaznaczy to kolorem czerwonym.