08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

for (;;) {<br />

option = get_option();<br />

switch (option) {<br />

case ADDREC :add_rec();break;<br />

case LISTREC :list_rec();break;<br />

case DELREC :del_rec(); break;<br />

case SORTREC :sort_rec(); break;<br />

case EXITPROG :goto EXIT;<br />

}<br />

}<br />

EXIT:<br />

return 0;<br />

}<br />

Yukarıdaki main işlevinde option değişkeninin değeri EXITPROG olduğunda programın<br />

akışı, goto deyimiyle sonsuz döngünün dışına gönderiliyor. goto deyimi yerine break<br />

deyimi kullanılsaydı, yalnızca switch deyiminden çıkılmış olurdu.<br />

goto deyimiyle, bir işlevin içindeki bir noktadan, yine kendi içindeki bir başka noktaya<br />

sıçrama yapılabilir. Böyle sıçramalara yerel sıçramalar (local jumps) denir. Bir işlevin<br />

içinden başka bir işlevin içine sıçramak başka araçlarla mümkündür. Böyle sıçramalara<br />

yerel olmayan sıçramalar (non-local jumps) denir. C dilinde, yerel olmayan sıçramalar<br />

ismi setjmp ve longjmp olan standart işlevlerle yapılır. Bu sıçramalar çoğunlukla "Olağan<br />

dışı hataların işlenmesi" (exception handling) amacıyla kullanılır.<br />

188/529

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

Saved successfully!

Ooh no, something went wrong!