C ile Kodlama
Yazan : Şadi Evren ŞEKER
Bu yazının amacı, c ile yazılan bir kodun nasıl bir programa dönüştüğünü açıklamaktır. Basitçe bir kod program C dilinde yazılmış bir dosyadır. Bu kaynak kodun (Source Code) bir programa ve ardından da bir işleme (process) dönüşmesi için sırasıyla:
- Kod derlenir (Compile)
- Derlenmiş kodlar bağlanır (linker)
- Bağlanmış kodlar hafızaya yüklenir (loader)
Yukarıda sıralanmış olan adımların teorik arka planı bu yazının konusu dışında olup yukarıdaki bağlantılara tıklayarak detaylı bilgi alınabilir. Bu yazıda basit bir programcının nasıl kodunu çalışır hale getirdiği anlatılacaktır. Aşağıdaki örnek kod ile başlayalım:
#include <stdio.h>
int main(){
printf("Sadi Evren SEKER");
return 0;
}
yukarıdaki kod, ekrana “Sadi Evren SEKER” yazısı yazan basit bir koddur. Buna göre öncelike stdio.h ismi verilen başlık dosyası (header) programa dahil edilir ve bu başlıkta bulunan kodlar ışığında programımızın içerisinde bulunan fonksiyonlar çalıştırılır. Örneğin printf fonksiyonunun ne işe yaradığı ismi geçen stdio.h dosyasında tanımlıdır.
Programımızın ilk.c isimli bir dosyaya kaydedildiğini kabul edelim ve farklı ortamlarda nasıl derlenerek çalıştırıldığına bakalım:
Programımızı derlemek için (compile) linux işletim sisteminde GCC ile:
gcc ilk.c -o ilk
programı çalıştırmak için de:
./ilk
yazmanız yeterlidir.
Programımızı dev-c++ ortamında derleyerek çalıştırmak için kodumuzu yeni bir dosyaya (source code) yazdıktan sonra klavyeden F9 tuşuna basabilir veya menülerden Execute > Compile&Run seçeneğini seçebiliriz:

Dev-C++ ile kodun compile ve run edilmesi
Aynı uygulamayı MS Visual C++ ile çalıştırmak için:
Öncelikle yeni bir proje oluşturulur (New > Project).
Projeye yeni bir isim verilir. Örneğin bu uygulama için “ilk” ismini verebilirsiniz.
Oluşturulan yeni projedeki “Source Files” üzerinde sağ tuş ile tıklayarak Add > New Item seçilir:

Çıkan diyalog kutusundan C++ File(.cpp) seçeneği seçilerek Name kısmına dosyanın adı yazılır (örneğin ilk.c) :

Son olarak açılan editörde yukarıdaki kod yazılarak Debug > Start Debugging seçilir veya klavyeden F5 tuşuna basılır:

Sonuç açılan konsol ekranında aşağıdaki şekilde görülebilir:

« Çift Tamponlama (Double Buffering, Çift Arabellek) | Türkçe için TimeML »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'C ile Kodlama' isimli yazı 06 Oct 2008 tarihinde, saat: 18:50 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 908 defa okunmuştur.
Benzer yazıları C/C++ kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
Yakın Yazılar
Huffman Kodlaması (Huffman Encoding)
Program doğruluğu ( Program correctness)
İç içe döngüler (Nested Loops)
Feistel Şifreleme (Feistel Cipher, Fesitel Ağı, Feistel Network)
MVC (Model View Controller, Model Bakış Kontrolcü)
Dinamik Markof Kodlaması ile Sıkıştırma (Data Compression Using Dynamic Markov Coding)
Mana Ağları (Sematic Webs, Anlamsal Ağ)
Sierpinski Üçgeni (Sierpinski Triangle)
Tekil Değer Ayrışımı (Singular Value Decomposition)
Makine Dilleri (Machine Langauge)
Bağlam Yönelimli Programlama (Aspect Oriented Programming)
Eşlemeli Metotlar (Synchronized Methods)
Vernam Şifrelemesi (Vernam Cipher)
Bağlantılar