Amiga Dünyası sayı 27, sayfa 43

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 43

C'de önemli olan diğer bir nokta da, esnek alt rutinlerin hazırlanmasıdır. Böylece her yeni bir program hazırlanışında eski rutinlerden de yararlanılır ve programın kısa sürede bitmesi sağlanır. Ayrıca sık sık karşınıza çıkan problemlerle yeniden uğraşmak zorunda kalmazsınız ve kalan zamanı yeni şeyler keşfetmek için kullanabilirsiniz. Bu olayı modüler çalışma olarak tarif etmek de mümkün. Modüler çalışma C'nin getirdiği avantajlardan en büyüğüdür. Bu ayki konumuzu da kısaca açıkladıktan sonra, ilgili örneklere geçebiliriz. İlk olarak, aşağıda hazırlamış olduğum rutinleri yazdıktan sonra bir sefer derleyin. Derleme sonucunda oluşan, uzantısı '.o' olan dosyayı disketinize saklayın. Böylece programı her seferinde derlemenize gerek kalmaz ve zamandan oldukça fazla tasarruf etmiş olursunuz. Buna benzer library'leri kendiniz de oluşturup bir diskette saklayabilirsiniz. Bu library'ler sayesinde program yazmak kolaylaşacaktır. Şimdi örneğimizi bir inceleyelim;

Pa by CENKER OZKURT */ #include <stdio.h> #include #include <graphics/gfxbase.h> #include <intuition/intuitionbase.h> #include <libraries/dos.h> #include <jiff.h>

struct GfxBase *GfxBase; struct DosBase *DosBase; struct İntuitionBase *IntuitionBase; struct ILBM info *info; struct NewScreen scr—(0,0,0,0,0,0,1,NULL, CUSTOMSCREEN,NULL, NULL,NULL );

/*-Screen Structures-*/ struct RastPort *scr rastport|51; struct ViewPort *scr viewport|51; struct Screen e

openlibrary() ionBasezOpenl ibrary("intuition.lib- ( printf("İntuition Error!..."); doselibrary();

| printf('Graphics closelibrary();

ral

&&Ğ

1 if(DosBase) | printf("Dos Error!

/* OK! */

if(DosBase) CloseLibrary(DosBase); CloseLibrary(Intuitioı se); aa

s. rastport(s) Ss; s viewport(s) int s;

opensereen(s,maxx,maxy,color)

int s; /* Screen number */ int color; /* Screen color number */ int maxx,maxy; /* Screen sizes */

int plane; switch(color) (| case 2:

12)) ser. 2001

( ser. ViewModı

ser P* OK! */

closescreen(s)

ints; — /* Screen number */

!

serfront(s) ints; — /* Screen number */

een ToFront(screen|s));

bist #6,Sbfe001

bne.s İm add.

waitmouse()

asm loopl:btst#6,$bfe001 bneloopl #endasm

waitkey()

int a,b; unsigned char *key-0xbfec0l;

a-*tkey; while(a:

plot(s,x,y) int s; Screen number */ intx; — /* x coordinates */ yı /* yeoordinates */

Movef(scer rastportls|,x,y):

ints; /* Screen number */ int x,y; /* Start coordinates */ /* Stop coordinates */

Movefser. rastportls),x,y); Bana

int Screen number */

Mil

Klavyeyle gezinmek için ← ve → tuşları.