28.02.2015 Views

Ders 1: Giriş

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Alt programlar çok büyük ve karmaşık işlemler yaptığında, bu şekilde derleme yapmak pek<br />

sağlıklı değildir. Bunun yerine alt programların bulunduğu dosyalar bir kez -c seçeneği ile<br />

derlendiğinde üretilen obj uzantılı dosyalar başka programlar tarafından kullanılabilir.<br />

Şöyleki:<br />

C:\TC> tcc -c topla.c<br />

C:\TC> tcc -c fark.c<br />

C:\TC> tcc -c carp.c<br />

C:\TC> tcc -c bol.c<br />

Ana programla beraber derleme işlemi bize aynı sonucu verecektir:<br />

C:\TC> tcc ana.c topla.obj fark.obj carp.obj bol.obj<br />

Bu sayede ana programda bir değişiklik yapılsa bile alt programrın bir daha derlenmesine<br />

gerek kalmaz. Örneğin ana program şu şekilde bir satır ekleyelim:<br />

/* ana.c: Ana program */<br />

#include <br />

int topla(int, int);<br />

int fark(int, int);<br />

int carp(int, int);<br />

int bol(int, int);<br />

int main()<br />

{<br />

int x=33, y=22;<br />

printf("topla(%d,%d) = %d\n",x,y,topla(x,y));<br />

printf(" fark(%d,%d) = %d\n",x,y,fark(x,y));<br />

printf(" carp(%d,%d) = %d\n",x,y,carp(x,y));<br />

printf(" bol(%d,%d) = %d\n",x,y,bol(x,y));<br />

printf("<br />

ortalama = %f\n",topla(x,y)/2.0);<br />

}<br />

return 0;<br />

Derleme aşağıdaki gibi yapıldığında:<br />

C:\TC> tcc ana.c topla.obj fark.obj carp.obj bol.obj<br />

program çıktısı şöyle olur:<br />

C:\TC> ana<br />

topla(33,22) = 55<br />

fark(33,22) = 11<br />

carp(33,22) = 726<br />

bol(33,22) = 1<br />

ortalama = 27.500000<br />

C:\TC><br />

Özetle bir fonksiyon birkez derlenip ona ait obj dosyası üretildiğinde, artık o kod bütün<br />

programlar tarafından kullanılabilir demektir. Aşağıdaki derleme işlemi ile obj dosyaları ana<br />

programa bağlanmıştır diyebiliriz:<br />

C:\TC> tcc ana.c topla.obj fark.obj carp.obj bol.obj<br />

Bu durum Şekil 22.3 de tasvir edilmiştir.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!