Bir önceki yazıda basit bir program nasıl yazılım ve çalıştırılır bahsetmiştim. Ancak bu programın kaynak kodunda yazılan şeyler nedir bahsetmemiştim. Şimdi bunların üzerinden geçerek temel yapıyı göstermeye çalışacağım. "Hello world!" programını tekrar yazalım ve satır satır inceleyelim.
1. #include<stdio.h>
2. #include<conio.h>
3. int main()
{
4. printf("Hello, World!");
5. getch();
6. return 0;
}
Bir C/C++ kodu yazılırken en üstte daima header dosyaları da denilen kütüphaneler tanımlanır. Bu kütüphanelerde sizin kod içinde kullandığınız fonksiyonların tanımları bulunur. Gözden kaçmaması açısından en üstte yazılması daha doğru olur.
Bu kütüphaneler standart kütüphaneler olabileceği gibi sizin kendi dosyalarınız da olabilir.
Standart C/C++ dosyaları eklenirken #include<> direktifi kullanılır.
#include <stdio.h>
Kendi yazdığınız bir kütüphaneyi "file" şeklinde yükleyebilirsiniz.
#include "file.h"
Kodu derlemeye çalıştığınızda ilk önce bu kütüphaneler işlenir ve sizin kodlarınız bu kütüphanedeki tanımlara göre çalıştırılır. Eğer bir kütüphane eksikse derleme hatası verecektir. Bildiğimiz bütün kütüphaneleri yazalım demek de doğru değildir. Bu hem derleme zamanını uzatır hem de çıktılarınızın boyutu büyüyebilir. Programın çalışma hızı da eklenen gereksiz kütüphanelerin içeriğine göre etkilenebilir.
Bir program, C/C++ dilinde her zaman main fonksiyonu ile başlar. main fonksiyonu ana fonksiyon olup diğer fonksiyonları yönetir. Buradan diğer fonksiyonlar çağırılıp çalıştırılabilir. main C/C++ için olmazsa olmaz niteliğindedir.
printf yine bir fonksiyon olup, çift tırnak içindeki bilgiyi çıktı olarak yazar. Konsoleda çalıştırıyorsanız, çalıştırma komutunuzun ardından bu bilgileri görebilirsiniz. Bu size hem kodu takip etmek açısından faydalıdır hem de kullanıcı ile iletişim için kullanılabilir. Bu fonksiyonu internette aradığınızda hangi parametrelerle kullanabileceğinizi, hangi kütüphaneye ihtiyaç duyduğunuzu öğrenebilirsiniz. Biz 1. satırdaki kütüphaneyi bu fonksiyon için ekledik.
getch() fonksiyonu kullanıcıdan bir karakter girmesini bekler. Bir önceki yazıda bu kısmı windows için eklediğimizi söylemiştik. Bu fonksiyona linuxta ihtiyacımız yok çünkü konsolda çalıştırdığımız programın sonucunu yine konsolda görebiliyoruz. Windowsta ise anlık bir konsol yaratılıp sonuç gösterilip kapatılıyor. Bu şekilde aslında işimiz bitene kadar konsolun kapatılmasını engellemiş oluyoruz. Yine eclipse gibi bir editör kullanırsanız bu fonksiyona ihtiyacınız olmayacaktır. Eclipse kendi içinde konsol bulunduruyor. Bu fonksiyon için de conio.h gerekiyor.
Son kısım ise fonksiyonun dönüş değeridir. Şimdilik bu kısma girmeye gerek duymuyorum. Fonksiyonlar kısmı açıklanırken anlaşılması daha kolay olacaktır. Şuan için "int main" şeklinde fonksiyon tanımı ve "return 0" şeklinde dönüş değeri tanımlamak yeterlidir diye düşünüyorum.
Burada dikkat etmek gereken diğer bir nokta ise her komut satırının ";" ile bitmesidir. Derleyici satırınızın bittiğini bu şekilde anlar. Bu yüzden her satır sonuna eğer komut bitmişse ; konulur.
; konulmayan durumlar da olabilir. Bir örnekle gösterelim:
#include<stdio.h>
int main()
{
printf("hello"
"world");
return 0;
}
Burada "hello" sonrası ; koymadık çünkü komutun sonu burası değil.
1. #include<stdio.h>
2. #include<conio.h>
3. int main()
{
4. printf("Hello, World!");
5. getch();
6. return 0;
}
Bir C/C++ kodu yazılırken en üstte daima header dosyaları da denilen kütüphaneler tanımlanır. Bu kütüphanelerde sizin kod içinde kullandığınız fonksiyonların tanımları bulunur. Gözden kaçmaması açısından en üstte yazılması daha doğru olur.
Bu kütüphaneler standart kütüphaneler olabileceği gibi sizin kendi dosyalarınız da olabilir.
Standart C/C++ dosyaları eklenirken #include<> direktifi kullanılır.
#include <stdio.h>
Kendi yazdığınız bir kütüphaneyi "file" şeklinde yükleyebilirsiniz.
#include "file.h"
Kodu derlemeye çalıştığınızda ilk önce bu kütüphaneler işlenir ve sizin kodlarınız bu kütüphanedeki tanımlara göre çalıştırılır. Eğer bir kütüphane eksikse derleme hatası verecektir. Bildiğimiz bütün kütüphaneleri yazalım demek de doğru değildir. Bu hem derleme zamanını uzatır hem de çıktılarınızın boyutu büyüyebilir. Programın çalışma hızı da eklenen gereksiz kütüphanelerin içeriğine göre etkilenebilir.
Bir program, C/C++ dilinde her zaman main fonksiyonu ile başlar. main fonksiyonu ana fonksiyon olup diğer fonksiyonları yönetir. Buradan diğer fonksiyonlar çağırılıp çalıştırılabilir. main C/C++ için olmazsa olmaz niteliğindedir.
printf yine bir fonksiyon olup, çift tırnak içindeki bilgiyi çıktı olarak yazar. Konsoleda çalıştırıyorsanız, çalıştırma komutunuzun ardından bu bilgileri görebilirsiniz. Bu size hem kodu takip etmek açısından faydalıdır hem de kullanıcı ile iletişim için kullanılabilir. Bu fonksiyonu internette aradığınızda hangi parametrelerle kullanabileceğinizi, hangi kütüphaneye ihtiyaç duyduğunuzu öğrenebilirsiniz. Biz 1. satırdaki kütüphaneyi bu fonksiyon için ekledik.
getch() fonksiyonu kullanıcıdan bir karakter girmesini bekler. Bir önceki yazıda bu kısmı windows için eklediğimizi söylemiştik. Bu fonksiyona linuxta ihtiyacımız yok çünkü konsolda çalıştırdığımız programın sonucunu yine konsolda görebiliyoruz. Windowsta ise anlık bir konsol yaratılıp sonuç gösterilip kapatılıyor. Bu şekilde aslında işimiz bitene kadar konsolun kapatılmasını engellemiş oluyoruz. Yine eclipse gibi bir editör kullanırsanız bu fonksiyona ihtiyacınız olmayacaktır. Eclipse kendi içinde konsol bulunduruyor. Bu fonksiyon için de conio.h gerekiyor.
Son kısım ise fonksiyonun dönüş değeridir. Şimdilik bu kısma girmeye gerek duymuyorum. Fonksiyonlar kısmı açıklanırken anlaşılması daha kolay olacaktır. Şuan için "int main" şeklinde fonksiyon tanımı ve "return 0" şeklinde dönüş değeri tanımlamak yeterlidir diye düşünüyorum.
Burada dikkat etmek gereken diğer bir nokta ise her komut satırının ";" ile bitmesidir. Derleyici satırınızın bittiğini bu şekilde anlar. Bu yüzden her satır sonuna eğer komut bitmişse ; konulur.
; konulmayan durumlar da olabilir. Bir örnekle gösterelim:
#include<stdio.h>
int main()
{
printf("hello"
"world");
return 0;
}
Burada "hello" sonrası ; koymadık çünkü komutun sonu burası değil.
Yorumlar
Yorum Gönder