C Programlama #13 | Kendi Fonksiyonlarımız: Tanım, return ve Prototip
Fonksiyonlar, Prototipler ve Çağrı YığınıEğitmen: Dr. Süleyman Burak ÇELİK
Aynı formülü üç kez yazan bir programda üçüncü öğrencinin ortalaması 69 yerine 39.3 çıkıyor. On üçüncü derste kendi fonksiyonlarımızı yazıyoruz: fonksiyon tanımı, parametreler, return deyimi ve prototip. Hatayı 0.6 yerine yazılmış 0.06'da buluyor, formülü tek bir ortalama fonksiyonuna taşıyoruz: 72.0, 60.0 ve 69.0. Bir fonksiyon tanımını parçalarına ayırıyoruz: dönüş türü, ad, parametre listesi ve gövde. Ardından lldb hata ayıklayıcısıyla her çağrıyı gerçek değerlerle izliyoruz: argümanlar sırayla parametrelere kopyalanıyor, gövde çalışıyor ve değer, çağrının yapıldığı satıra dönüyor. Fonksiyonu main'den sonra yazınca gcc'nin neden durduğunu görüyoruz (örtük bildirim, çelişen türler) ve sorunu prototiple çözüyoruz; prototipte parametre adlarının isteğe bağlı olduğunu da deniyoruz. Derleyicinin her çağrıyı prototiple karşılaştırdığını iki örnekle gösteriyoruz: eksik argüman derlemeyi durduruyor, int parametreye verilen 2.5 ise sessizce 2'ye dönüşüyor (gcc -Wall uyarmıyor, clang uyarıyor). Son olarak void fonksiyonları ve sinsi bir hatayı ele alıyoruz: bir yolu return'süz kalan fonksiyon aynı girişte gcc ile 7, clang ile 1, gcc -O2 ile 0 döndürüyor; sonuç tanımsız. Ekrandaki her çıktı, kodun gerçekten derlenip çalıştırılmasından geliyor. Bu derste: 1. Fonksiyon tanımı: dönüş türü, ad, parametre listesi ve gövde 2. return: değeri çağrının yapıldığı yere döndürür (lldb ile izlendi) 3. Prototip: main'den sonra yazılan fonksiyonu önceden bildirmek 4. Derleyici çağrıları denetler: eksik argüman hatası, 2.5'in 2'ye dönüşmesi 5. void fonksiyonlar ve eksik return'ün tanımsız sonucu Bölümler: 0:00 Geçen ders hazır fonksiyonlar; bugün kendimiz yazıyoruz 0:16 Aynı formül üç kez: üç kez hata şansı 0:59 Fonksiyon tanımı: başlık ve gövde 1:35 Bir çağrıda neler olur? (lldb) 2:14 Prototip: derleyiciye önceden haber 2:56 Derleyici her çağrıyı denetler 3:38 void ve eksik return 4:34 Bugünün dört kuralı 5:01 Sonraki ders: çağrı yığını Kaynak kitap: Paul Deitel, Harvey Deitel — C How to Program, 9. baskı (2022), §5.5–5.6. Konu sırası ve kavramlar kaynak kitaptan izlenir; anlatım, örnekler ve ekranlar özgündür. Hedef kitle: C'ye yeni başlayan tüm mühendislik ve bilgisayar/yazılım öğrencileri. Ön koşul: C Programlama #01–#12.