#1 C Programlamaya Giriş

Programlama dilleri hayatta karşılaşılan herhangi bir sorunu ya da bir insanın yapmış olduğu herhangi bir eylemin nasıl yapılacağının makinelere anlatıldığı bir tekniktir. İlk programlama dilinden bugüne dek birçok programlama dili yazılmıştır. Yazılan her programlama dilinin belirli bir amacı vardır. Bazı programlama dilleri bilimsel hesaplamalarda nümerik analiz yapabilmek için türetilmişken bazı programlama dilleri ise son kullanıcı odaklı yazılımlar yazılırken programcının işini kolaylaştırmak amacıyla türetilmiştir ve türetilmeye de devam etmektedir.

İlk programlama dilleri bilgisayarların anlayacağı düzeyde oluşturulmaktaydı. Elektrik sinyalleri ile lojik-1 ve lojik-0 sağlanarak sinyallerden çeşitli algoritmalar oluşturulmaktaydı. 5V gerilim uygulandığında lojik-1 sinyali, 0V uygulandığında lojik-0 değeri olacak şekilde devre topolojileri oluşturulmaktaydı. Bu durum günümüzde de kullanılmakta olan Assembly dilinin temellerini oluşturmaktadır. Günümüzde lojik sinyallerle oluşturulan devre topolojileri kullanılmaktadır. Bir programlama dilinden daha hızlı olduğu durumlar da söz konusu olabilir.

C Programlama Dili

Makinelerin dili 1 ve 0′ lardır. Makinelere en yakın programlama dili Assembly dilidir. Assembly dili hem makine diline yakın hem de insanların kodlayabileceği seviyede bir dildir. Assembly dilinin geliştirilmesi ile başka programlama dilleri de türetilmiştir. 1972 yılında ise geliştirilen bu dillerden biri olan B dilinin AT&T Bell laboratuvarlarında geliştirilmesiyle C dili ortaya çıkmıştır. C dili ortaya çıktığı andan itibaren günümüzde kullanılan birçok programlama dilinin yazılmasında kullanılmıştır.

Yukarıdaki programlama dil ailesinde de görüldüğü gibi programlama dilleri belirli bir amaca hizmet etmek için birbirlerinden türetilmiştir. Kimi programcıya göre bu bir gereksizlik iken kimisine göre de bir işlevselliktir.

C Programlama Dilinin Kullanım Yerleri

C programlama dili yapısal bir programlama dilidir. Yapısal programlama yazılan kodun mantıksal bloklara ayrılarak yazılması ile oluşan bir programlama çeşididir.

C programlama dili alt seviye (low level) dil olarak kabul edilir. Bir programlama dilinin alt seviye olması onun makine diline olan yakınlığını gösterir. Yüksek seviye (high level) programlama dilleri ise makineden çok insana olan yakınlığı temsil eder. Bir insanın anlayacağı düzeyde kod yazmak yüksek seviyeli dillerde mümkündür. Programlama dilleri her geçen gün yeni bir güncelleme alarak kendilerini teknolojinin ihtiyaçlarını karşılayabilecek düzeye getirmektedir.

C programlama dili işletim sistemi yazmak amacıyla kullanılan bir programlama dilidir. Gömülü sistemler olarak adlandırdığımız elektronik kompanentlerden oluşan ve elektronik sinyallerle çalışan devrelerde elektronik sinyallerin mikroişlemci ile dijital olarak sağlanmasında da C dili kullanılmaktadır. Yani makine diline yakın olması ve bir insanın rahatça kodlayabilmesi sebebiyle C programlama dili mikroişlemcilerin kodlanmasında yıllardır kullanılmaktadır. Elbette başka programlama dilleri de mikroişlemci kodlamasında kullanılmaktadır lakin C dilinin makineye olan yakınlığından dolayı bu amaç doğrultusunda en çok C dili tercih edilmiştir.

Kısaca C programlama dilinin kullanım yerlerini aşağıdaki gibi sıralayabiliriz. Tabii ki bu listeye bir sürü örnek eklenebilir.

  • Gömülü sistemler
  • Sistem ve masaüstü uygulaması geliştirmek
  • Tarayıcı uzantı ve eklentilerini geliştirmek
  • İşletim sistemi yazmak
  • Derleyici geliştirmek
  • Veri tabanı geliştirmek

İlk C Programı

C programlama dili ile yazılan ilk program ekrana “Hello World” yazdırmaktaydı. Bu program, programcılar için oldukça manevi bir değere sahiptir ve her program dili eğitimcisi öğrencilerine ilk programda ekrana “Hello Word” yazdırır.

C dilinde ekrana “Hello Word” yazdıran kodlar aşağıdaki gibidir.

#include<stdio.h>
int main(){
    printf("Hello World");
    return 0;
}

Yukarıdaki kodların anlamları aşağıdaki tabloda verilmiştir.

KomutAçıklama
#include<stdio.h>C programlama dilindeki standart giriş ve çıkış fonksiyonlarını (standart input output) programı derleyecek olan derleyiciye bildirir.
int main()main fonksiyonunu tanımlar.
{main fonksiyonun içine yazılacak kod bloğunu başlatır.
printf(“Hello World”);Ekrana “Hello World” yazılmasını sağlayan fonksiyondur.
return 0;Programı sonlandırır ve 0 değerini döndürür.
}main fonksiyonun içine yazılacak olan kod bloğunu sonlandırır.

Yukarıdaki tabloda verilen komutlar ve açıklamalarına ek olarak ilerleyen yazılarımda C programlama dilinin yazılmasında kullanılan komutlara daha detaylı yer vereceğim. Yukarıdaki kod sadece örnek bir koddur. Yukarıdaki örnek olarak verilen kodu bir C IDE’ sinde derlediğimizde ekranımızda “Hello World” yazısını görürüz.

C programlama dilinde kod yazarken öncelikle # komutu ile derleyiciye program öncesinde kullanılacak fonksiyonların header dosyaları tanıtılır. Yani bir nevi kütüphaneler derleyiciye tanıtılır. Sonrasında main isminde bir fonksiyon tanımlanarak programda yapılacak tüm işlemleri içerisine yazılır. Yazılan her komuttan sonra noktalı virgül (;) ifadesi kullanılır. Bunun anlamı komutun bittiği ve yeni komuta geçildiğidir. main fonksiyonunun sonunda belirtilen return 0; komutu ile de o değeri döndürülerek program sonlandırılır. Bu işlemin yeni C standarlarına göre yapılmasına gerek yoktur. Lakin çoğu programcı yazar. Bende dahil. 😉 Süslü parantezlerle açılan bloklar ise o bloğun bir yere ait olduğunun göstergesidir. main fonksiyonunun altında açılan blok sadece main fonksiyonunu kapsar.

C Programlama Dili İçin IDE Ortamları

Derleyici (complier) olarak adlandırılan programlar yazılan kaynak kodunu başka bir kod formatına dönüştürürler. C programlama dili programlayan programlayıcılar yazdıkları kodları daha alt seviye dillere ve makine diline dönüştürebilmek için her programcının ihtiyaç duyduğu gibi derleyicileri kullanılırlar. Derleyicilerin tanımı bir programlama dilini kendinden alt seviye programlama dillerine dönüştürebilen program olarak da yapılabilir.

IDE diye adlandırdığımız platform tümleşik geliştirme ortamıdır (integrated development environment). IDE platformları içerisindeki birçok araç ile programcıların yazılımlarını hızlı ve rahat bir şekilde geliştirmesine olanak sağlayan yazılımlardır.

C programcılarının yazdıkları kodları derleyebilmek için kullandıkları bazı IDE’ ler aşağıda verilmiştir. Benim tavsiyem Code::Blocks kullanmanızdan yana. 😉

IDEWindowsLinuxMAC OS XBağlantı
Eclipse+++İndir
Code::Blocks+++İndir
GNAT+İndir
Visual Studio Code+++İndir
Code Lite+++İndir
Net Beans 8+İndir
Qt Creator+İndir
Sublime Text+İndir
Dev C+++İndir
C++ Builder++İndir
CLion+++İndir
MonoDevelop+++İndir
Linx+İndir

Yukarıdaki IDE’ lerden istediğinizi indirip kullanabilirsiniz. İçlerinden bazıları ücretli olduğundan ücretsiz ve hatta açık kaynak kodlu derleyicileri kullanmanızı tavsiye ederim.

Yorum bölümünden tüm sorularınızı bana iletebilirsiniz.

Çalışmalarınızda başarılar dilerim.

Hamit Can Dinç.

One comment

  1. Merhabalar,

    Sitenizdeki tüm yazıları okudum bu bilgileri Türkçe bir şekilde paylaştığınız için size çok teşekkür ediyorum. Biyografinize baktığım zaman Yıldız Teknik Üniversitesinde mühendislik öğrencisi olduğunuzu okudum, bende size bu üniversite ve imkanları hakkında bazı sorular sormak istiyorum, geleceğimi şekillendirebilmek için sizin tecrübelerinizden faydalanarak. Şimdiden teşekkürler.

    Öncelikle bir üçüncü sınıf öğrencisi olarak Türkiye’de elektrik mühendisleri hakkında ne düşünüyorsunuz? Bir öğrencinin gözünden anlatabilirmisiniz?

    Okulunuzun eğitimi, hocaları ve laboratuvar koşulları hakkında ne düşünüyorsunuz?

    Bir üniversite her zaman eğitim alınan bir yer değildir sosyalleşebilme açısından ne gibi faaliyetlerde bulunabilirim, yönetimi hakkında ne düşünüyorsunuz öğrenci yanlısı mı yoksa köstek mi oluyorlar?

    Bir gün kazanırsam okulda yaptığınız, önerebileceğiniz şeyler nelerdir?

    Birde baş ucu kitabınız nedir? 🙂

Ömer Sadık DEMİR için bir cevap yazınCancel Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


The reCAPTCHA verification period has expired. Please reload the page.