08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

#include <br />

#include <br />

int main()<br />

{<br />

time_t timer;<br />

}<br />

timer = time(NULL);<br />

printf("%s", asctime(localtime(&timer)));<br />

return 0;<br />

Yukarıdaki kod parçasında, localtime işlevinin geri dönüş değeri olan struct tm türünden<br />

adres doğrudan asctime işlevine argüman olarak gönderiliyor. asctime işlevinin geri<br />

dönüş değeri olan adres de printf işlevine geçiliyor.<br />

clock İşlevi<br />

İşlevin geri dönüş değeri time.h başlık dosyası içinde bildirilen standart bir typedef türü<br />

olan clock_t türüdür. Derleyicilerin hemen hepsinde bu tür long türünün typedef ismi<br />

olarak bildirilir:<br />

clock_t clock(void);<br />

İşlev, programın çalışmaya başlamasıyla işlev çağrısına kadar geçen süreye geri döner.<br />

Ancak işlevin geri dönüş değerine ilişkin birim saniye değil işlemcinin zaman devresinin<br />

tick sayısıdır. İşlevin geri dönüş değerini saniyeye dönüştürmek için, geri dönüş değeri<br />

işlemcinin saniyedeki tick sayısına bölünmelidir. Zaman devresinin bir saniyedeki tick<br />

sayisi time.h içinde CLOCKS_PER_SEC isimli bir simgesel değişmez olarak tanımlanmıştır.<br />

#define CLOCKS_PER_SEC 1000<br />

Kodun taşınabilirliği açısından bu simgesel değişmez kullanılmalıdır.<br />

Derleyicilerin çoğu daha kısa bir simgesel değişmezin kullanılmasını sağlamak üzere<br />

CLK_TCK isimli bir simgesel değişmez daha tanımlar:<br />

#define CLK_TCK CLOCKS_PER_SEC<br />

Ancak taşınabilirlik açısından CLOCKS_PER_SEC simgesel değişmezi kullanılmalıdır.<br />

clock işleviyle ilgili aşağıdaki örnek programı inceleyin:<br />

#include <br />

#include <br />

#include <br />

int main()<br />

{<br />

clock_tclock1, clock2;<br />

long k;<br />

clock1 = clock();<br />

for (k = 1; k < 10000000; ++k)<br />

sqrt(sqrt(k) + sqrt(k + 1));<br />

clock2 = clock();<br />

printf("dongu %lf saniye surdu!\n", (double)(clock2 - clock1) /<br />

CLK_TCK);<br />

}<br />

return 0;<br />

400

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

Saved successfully!

Ooh no, something went wrong!