Kurs języka C - część 1

Transkrypt

Kurs języka C - część 1
Kurs języka C - część 1
Grzegorz "Y-Greg" Tarka
(c) Polski Portal Amigowy (www.ppa.pl)
Język C jest językiem szeroko stosowanym zarówno na Amidze, jak i na innych platformach sprzętowych, gdyż nie jest
związany z jakimś konkretnym systemem. Tym artykułem chciałbym rozpocząć cykl traktujący właśnie o ANSI C i
postaram się opisać ten język tak, aby zrozumiały go osoby początkujące.
HISTORIA
JAK TO WYGLĄDA?
.p
l
Język C został opracowany przez Dennisa Ritchie`go z Bell Laboratories w 1972 r. dla systemów operacyjnych Unix,
działających na mikrokomputerach DEC PDP-11. Pierwowzoren dla języka C był język B opracowany w 1970 r. przez
Kena Thomsona. Z kolei język B był inną wersją języka BCPL dla pierwszej wersji instalacji systemu Unix. BPCL
zdefiniowano w 1969 r. przez Martina Richardsa z University of Mathematical Laboratories w Cambridge.
w
.p
pa
Język C jest językiem niskiego poziomu, więc jest w miarę prosty do nauczenia, ale stanowi on w połączeniu z
funkcjami systemu Amigi potężne narzędzie. Ktoś może powiedzieć że jest AMOS, ale on nie korzysta z systemu Amigi
i przez to np: nie zmusimy go do działania na karcie graficznej, czy choćby otwierać systemowe okienka. Prawda, są
dodatki do Amosa, które przybliżają go do amigowego systemu, ale to nie to samo co C, który z amigowym systemem
pracuje idealnie. Ponadto kompilatory C na Amigę potrafią generować kod dla procesorów PowerPC, czego w tej chwili
nie potrafi np. osławiony język E, dzięki czemu sami możemy tworzyć oprogramowanie dla tych, nie ma co mówić,
szybkich procesorów. Możemy także pokusić się o pisanie programów na MorphOSa, a w przyszłości na AmigaOS 4.
Oczywiście amigowe kompilatory świetnie generują też kod dla procesorów 68k. Dzięki poznaniu tego języka łatwo
pisać programy, które potem można przenosić między platformami sprzętowymi, co też nie jest bez znaczenia.
KOMPILATORY
w
Na Amigę powstało dużo kompilatorów C (jak i C++), niektóre są komercyjne, niektóre darmowe. Do najbardziej
popularnych należą: Sas C, Storm C, GCC oraz VBCC. Dwa ostanie są darmowe i można je ściągnąć z Aminetu.
Wszystkie potrafią generować kod dla procesorów PPC. StormC to dzieło firmy Haage & Partner, jest to kompilator
drogi, ale przez niektórych ceniony. Posiada zintegrowany edytor i na pewno jest łatwiejszy w instalacji niż np: gcc, czy
vbcc. Ja korzystam z VBCC i właśnie na nim się skupimy. VBCC to darmowy kompilator, potrafi generować kod dla
procesorów 68k, PowerPC (PowerUp, WarpUP, MorphOS), ale można np: wygenerować na nim program, który
uruchomimy na procesorach x86 czy alpha. Program można pobrać z Aminetu lub ze strony domowej autora.
INSTALACJA
w
Instalację rozpoczniemy od rozpakowania archiwum z vbcc gdzieś na dysk. Po rozpakowaniu mamy katalog vbcc, a w
nim katalogi: bin - zawierający pliki wykonywalne, config - zawierający pliki konfiguracyjne, doc - zawierający
dokumentację, targets - zawierający pliki include i lib dla danych maszyn (68k, ppc, warpos, morphos) (na razie nie
musimy wiedzieć co to są pliki include i lib).
Do prawidłowej pracy vbcc potrzebuje jeszcze paru przypisań, czyli assignów: assign >NIL: vbcc: (miejsce gdzie
rozpakowane jest archiwum z vbcc) assign >NIL: C: vbcc:bin add assign >NIL: vbccm68k:
vbcc:targets/m68k-amigaos assign >NIL: vincludem68k: vbccm68k:include assign >NIL: vincludem68k: (miejsce
gdzie masz systemowe pliki include dla 68k) ADD ;assign >NIL: ixinclude: (miejsce do potrzebnych plików ixemul)
assign >NIL: vlibm68k: vbccm68k:lib assign >NIL: vbccppc: vbcc:targets/ppc-powerup assign >NIL:
vincludeppc: vbccppc:include assign >NIL: vlibppc: vbccppc:lib assign >NIL: vincludeppc: (miejsce gdzie masz
systemowe pliki include dla PowerUp) ADD assign >NIL: vbccwos: vbcc:targets/ppc-warpos assign >NIL:
Strona 1
Kurs języka C - część 1
Grzegorz "Y-Greg" Tarka
(c) Polski Portal Amigowy (www.ppa.pl)
vincludewos: vbccwos:include assign >NIL: vlibwos: vbccwos:lib assign >NIL: vincludewos: (miejsce gdzie masz
systemowe pliki include dla WarpOS) ADD assign >NIL: vbccmos: vbcc:targets/ppc-morphos assign >NIL:
vincludemos: vbccmos:include assign >NIL: vlibmos: vbccmos:lib assign >NIL: vincludemos: (miejsce gdzie masz
systemowe pliki include dla MorphOS-a) ADD
Ponadto przy większych projektach trzeba zwiększyć stos komendą stack. Wróćmy jednak do przypisań. Dla vbcc:
przypisujemy miejsce w które rozpakowaliśmy archiwum, np. Dh1:Programowanie/vbcc/
ZACZYNAMY
w
.p
pa
Po dodaniu przypisań do user-startup możemy już zacząć używać vbcc.
.p
l
Systemowe include`y są dostępne np. na AmigaDeveloperCD, na razie nie będą nam potrzebne. Kiedy będziemy
zaczynać programować z wykorzystaniem funkcji AmigaOSu, powrócimy do include`ów. Jeśli chodzi o przypisanie
ixinclude, to także możemy sobie je na razie darować. W katalogu vbcc znajdziemy przykładowe skrypty które po
lekkich modyfikacjach możemy umieścić w user-startup.
Co nam będzie potrzebne? Po pierwsze jakiś edytor tekstowy. Ja polecam GoldEd-a. Jest to edytor komercyjny, ale
naprawdę dobry. W katalogu config mamy pliki konfiguracyjne dla różnych maszyn. Będziemy ich używać do kompilacji
naszych programów. Jak to zrobić? Użyjemy opcji '+',np: vc +m68k_warpos ...
vbcc będzie uruchomiony na maszynie z WarpOS-em (ppc), ale będzie kompilował program dla AmigaOS (68k). vc
+warpos_warpos ...
vbcc będzie uruchomiony na maszynie z WarpOS-em (ppc) i będzie kompilował program dla AmigaOS/WarpOS (ppc).
vc +m68k_ppc ...
w
vbcc będzie uruchomiony na maszynie z PowerUp (ppc) i będzie kompilował program dla AmigaOS (68k).
TYLE NA DZISIAJ?
printf("Pierwszy
w
Jeżeli wszytko gra, to można skompilować następujący program. #include <stdio.h> main() {
program napisany w C, pod VBCC\n"); return(0); }
Jak to zrobić? Piszemy nasz program w jakimś edytorze tekstowym. Zapisujemy go na dysk pod nazwą hello.c. Teraz
kompilujemy nasz program komendą: vc hello.c
Plik wykonywalny będzię utworzony w katalogu z plikiem hello.c vc hello.c -o hello
Plik wykonywalny będzie utworzony w katalogu z plikiem hello.c, ale będzie miał nazwę hello. vc +warpos_m68k
hello.c -o hello
Strona 2
Kurs języka C - część 1
Grzegorz "Y-Greg" Tarka
(c) Polski Portal Amigowy (www.ppa.pl)
Plik wykonywalny będzie utworzony w katalogu z plikiem hello.c, będzie mial nazwę hello i będzie programem dla
WarpOS.
Kompilator vbcc posiada wiele opcji które opiszę w dalszej części kursu, na razie wystarczą nam te podstawowe. Pełny
spis komend vbcc znajduje się w dokumentacji (katalog doc/vbbc.html).
.p
l
Przykładowo:
Jeżeli nasz program zapiszemy do DH1:C to: vc +m68k_warpos dh1:c/hello.c -o dh1:hello
w
.p
pa
skompiluje nasz program do dh1:c pod nazwą hello. Program użyje pliku konfiguracyjnego warpos_warpos, czyli vbcc
uruchomiony zostanie na maszynie z zainstalowanym WarpOSem (ppc), a plik wykonywalny zostanie wygenerowany
dla AmigaOS 68k.
Proponuje skompilować nasz program. Nie musimy wiedzieć jeszcze co on robi i jak działa. Tym zajmiemy się w
nastepnym odcinku.
Aby ułatwić wam kompilowanie programów załączam przycisk do DOpusa, który robi to bardzo wygodnie. W listerze
Opusa zaznaczamy interesujacy nas plik źródłowy i naciskamy "Compile", badź naciskamy F10. Plik wykonywalny
zostanie wygenerowany do tego samego katalogu co plik źródłowy i będzie nosił nazwę "program". Vbcc w tym
przycisku korzysta z pliku konfiguracyjnego m68k_m68k, czyli generuje kod dla AmigaOSu 68k na tej samej maszynie.
PPC jest zbędny. W przycisku użyta jest opcja -v (verbose), której zadaniem jest wypisanie więcej informacji o
przebiegu kompilacji...
Oczywiście nic nie stoi na przeszkodzie, aby odpowiednio zmienić przycisk tak, aby generował kod dla WarpOS-a,
PowerUP, czy MorphOS-a.
w
w
I to by było na tyle, zapraszam do następnego odcinka... W razie problemów proszę o kontakt.
Strona 3

Podobne dokumenty