9.3 main() Fonksiyonuna Parametre Aktarımı

9.3   main() Fonksiyonuna Parametre Aktarımı

 NOT

Bu ve sonraki kısımda (9.3) anlatılanlar Bölüm 10, 11 ve 16 okunduktan sonra daha iyi anlaşılacaktır. Ancak, konu akışını bozmamak için, bu konunun buraya konması uygun bulunmuştur.

Ana programa parametre aktarımı, derlenmiş (çalıştırılabilir) bir program komut satırından (işletim sistemi ortamından) çalıştırılacağı zaman yapılır. Parametre aktarımı, programın adı yazılıp bir boşluk bırakıldıktan hemen sonra yapılır. Parametreler, komut satırından sayısal olarak girilse bile program içinde karakter topluluğu (string) olarak gelir. Bu durumda, bu ifadeleri sayısal değerlere çeviren (atoi()atol()atof() gibi) fonksiyonlar kullanılır[1].

Genel kullanım biçimi:

Program 9.1, komut satırından girilen iki sayının toplamını hesaplar.

Program 9.1: Komut satırından girilen iki sayının toplamını hesaplar

 

Program 9.1, topla.c derlendikten sonra üretilen Windows ortamında üretilen topla.exe ve Linux ortamında üretilen topla dosyasının çalıştırılması şöyledir:

  • Turbo C 2.0 Derlecisi kullanılarak (topla.c programı C:\TC adlı dizinin altına kaydedildiği varsayılmıştır)
     
  • Dev-C++ Derlecisi kullanılarak (topla.c programı C:\Users\bingul\Desktop adlı dizinin altına kaydedildiği varsayılmıştır)
     
  • Linux gcc derleyicisi kullanılarak (topla.c programı /home/bingul/ adlı dizinin altına kaydedildiği varsayılmıştır)

Komut satırında yazılan dosya adı dahil toplam parametre sayısı 3 tür. Bunlar:

şeklindedir.

Program 9.1, komut satırından girilen iki sayının toplamını hesaplar. Bu programın daha gelişmiş hali Program 9.2’de verilmiştir. Program 9.2 çalıştırıldığında, komut satırından girilen iki sayı ve bir operatör bekler. Girilen operatöre göre beş aritmetik işlemden birinini yapıp sonucu ekranda gösterir. İnceleyiniz.

Program 9.2: Komut satırından girilen iki sayı ve bir operatör bilgisine göre 5 işlemden birini hesaplar

 

Program hesap.c adlı dosyada saklandığı varsayılırsa, programın Linux ortamındaki çıktısı şöyle olacaktır:

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.