C Programlamaya Giriş

C programlama dili, 1972 yılında Dennis M. Ritchie tarafından Bell Telefon Laboratuvarlarında UNIX işletim sistemini geliştirmek için geliştirilen genel amaçlı, prosedürel, zorunlu bir bilgisayar programlama dilidir. C en yaygın kullanılan bilgisayar dilidir. Aynı derecede popüler olan ve modern yazılım programcıları arasında en yaygın şekilde kullanılan Python ve Java programlama dili ile birlikte bir numaralı popülerlik ölçeğinde kullanılmaya devam ediyor.

Neden C Programlama Öğrenmeliyim?

C programlama dili, özellikle mühendislik, yazılım geliştirme alanında çalışırken, öğrenciler ve çalışan profesyoneller için harika bir ve zorunlu bir dildir. C Programlama öğrenmenin bazı önemli avantajlarını iste şu şekilde listeleyebiliriz:

  • Öğrenmesi kolay
  • Yapılandırılmış ve kullanıma hazır dil
  • Verimli programlar üretebilir
  • Düşük seviyeli aktiviteleri halledebilir
  • Çeşitli bilgisayar platformlarında kolaylıkla derlenebilir

C Programlama Hakkında Bazı Gerçekler

  • C, UNIX adlı bir işletim sistemi yazmak için icat edildi.
  • C, 1970’lerin başlarında tanıtılan B dilinin halefidir.
  • C dili, 1988’de Amerikan Ulusal Standart Enstitüsü (ANSI) tarafından resmileştirildi.
  • UNIX OS tamamen C ile yazılmıştır.
  • Bugün C, en yaygın kullanılan ve popüler Sistem Programlama Dilidir.
  • En gelişmiş yazılımların çoğu C kullanılarak uygulanmıştır.

Dünyaya C Dili ile Merhaba Deyin

Size C programlama konusunda biraz heyecanlandırmak ve ne kadar kolay olduğunu göstermek için C dili ile yazılmış “Merhaba Dünya” programını gösterelim:

#include <stdio.h>

int main() {
   printf("Merhaba Dünya! \n");
   return 0;
}

C Programlama Uygulamaları

C, başlangıçta sistem geliştirme çalışmaları, özellikle işletim sistemini oluşturan programlar için kullanıldı. C, bir sistem geliştirme dili olarak benimsenmiştir, çünkü neredeyse assembly dilinde yazılan kod kadar hızlı çalışan kodlar üretir. C kullanımına ilişkin bazı örnekler:

  • İşletim sistemleri
  • Dil Derleyicileri
  • Assembler( programlama dillerinin makine diline çeviriciler)
  • Metin Editörleri
  • Yazdırma Biriktiricileri
  • Ağ Sürücüleri
  • Modern Programlar
  • Veritabanları
  • Dil Tercümanları
  • Araçlar
  • Mikroişlemci Uygulamaları

Bu eğitim serisi, sıfırdan başlayarak C programlama dilini anlama ihtiyacı olan yazılım programcıları için tasarlanmıştır. Bu C programlama eğitimi, kendinizi daha yüksek bir uzmanlık düzeyine götürebileceğiniz C programlama dili hakkında size yeterince bilgi verecektir.

Bu öğreticiye devam etmeden önce, Bilgisayar Programlama terminolojileri hakkında temel bir anlayışa sahip olmalısınız. Programlama dillerinden herhangi birinin temel düzeyde anlaşılması, C programlama kavramlarını anlamanıza ve öğrenme yolunda hızlı ilerlemenize yardımcı olacaktır. Fakat daha önce her hangi bir dilde tecrübe sahip değilseniz, C programala dili öğrenilebilecek ilk dillerden biridir.

Gerekli Hazırlıklar ve Programlar

C programlamaya başlamak için gerekli olan bileşenler ve programlar oldukça asgari düzeydedir. Bir metin düzenleyici ve derleyici ile şu an bile c programlamaya başlayabilirsiniz. C dili taşınabilir olmasına rağmen, belirli bir sistem için yazılmış olan bir C kodunu başka bir sisteme aktarıldığında çalışması için bazı değişiklikler yapılması gerekebilir.

C dili ilk hazırlandığı yıllarda, 32bit ve 64bit sistemler yerine 16bit sistemler yaygın olarak kullanılıyordu. Bu sebeple teknolojinin ilerlemesi ve 64bit sistemlerin yaygınlaşması sebebiyle, C dilinde ve derleyicilerde bir çok güncellemeye gidilmiştir. Güncelliğini ve kullanılabilirliğini koruması için mutlaka güncel kaynaklardan yararlanmak gerekir. Ayrıca ileri dönük bir öğrenmeye ve bilgiye ihtiyacımızdan dolayı mutlaka 64bit sistemler kullanılmalıdır.

C programlama içeriklerini oluştururken yoğunlukla MacOS ardından Linux(armbian) işletim sistemlerini kullanacağız. Fakat siz istediğiniz işletim sistemini kullanabilirsiniz

Metin Düzenleyici

Bu, programınızı yazmak için kullanılacaktır. Birkaç düzenleyiciye örnek olarak Windows Not Defteri, NotePAD++, Sublime Text, vim, vi, nano gibi metin düzenleme araçlarını kullanabilirisiniz.

Metin düzenleyicilerin adı ve sürümü, farklı işletim sistemlerinde değişiklik gösterebilir. Örneğin, Windows’ta Not Defteri kullanıcakken Linux/UNIX sistemlerde vim veya vi, MacOS sistemlerde ise, varsayılan olarak gelen metin düzenleyicisini ya da Sublime Text‘i kullanabilirsiniz.

Burada metin düzenleyici seçimi tamamen sizin istekleriniz doğrultusundadır. İstediğiniz metin derleyici deneyip bir diğerine geçebilirsiniz.

Ayrıca sıradan “metin düzenleyici” kullanmak istemiyorsanız buradaki yazımızdan C ve C++ kodlamak isteyenler için derlediğimiz IDE(Tümleşik geliştirme ortamı)lere göz atabilirsiniz.

Editörünüzle oluşturduğunuz dosyalara kaynak dosyalar denir ve bunlar program kaynak kodlarını içerir. C programlarının kaynak dosyaları genellikle ” .c ” uzantısıyla kaydedilir.

Programlamaya başlamadan önce, kullanacağınız metin düzenleyicisine hakim olduğunuzu ve tam olarak nasıl kullanıldığını bilmenizde fayda var.

C Programlama Derleyici

Kaynak dosyaya yazılan c kodları, programınız için insan tarafından okunabilen kaynaktır. Bilgisayarınızın ya da kullandığınız makinenin/ortamın programı verilen talimatlara göre çalıştırabilmesi için makine dilinde “derlenmesi” gerekir.

Derleyici, kaynak kodlarını çalıştırılabilir programa derler ve yazdığınız kod çalıştırılmaya hazır olur. En sık kullanılan ve ücretsiz olarak temin edilebilen derleyici GCC diğer adıyla GNU C/C++ derleyicisidir, Farklı olarak istediğiniz takdirde farklı derleyiciler kullanabilirsiniz. Örneğin, HP ya da Solaris derleyicileri.

Aşağıdaki bölüm, çeşitli işletim sistemlerinde GCC derleyicisinin nasıl kurulacağını açıklamaktadır. GNU GCC derleyicisi hem C hem de C++ programlama dilleri için çalıştığı için C/C++’dan hep birlikte söz ediyoruz.

Linux/UNIXte Kurulum

Linux veya UNIX kullanıyorsanız, komut satırından aşağıdaki komutu girerek sisteminizde GCC’nin kurulu olup olmadığını kontrol edin:

gcc -v

Eğer sisteminizde kurulu GNU derleyiciniz varsa, aşağıdaki gibi bir mesaj yazdırmalıdır:

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)

GCC kurulu değilse ya da versiyon bildiren her hangi bir geri dönüş almadıysanız şu şekilde kurabilirsiniz:

  • Paket listesini güncelleyerek başlayın:
sudo apt update
  • Gerekli bileşenleri bir kerede yükleyin:
sudo apt install build-essential

build-essential kurulumu sayesinde, derlemek için gerekli olan gcc, g++, make gibi bileşenler/komutlar yüklenmiş olur. Kurulumun yüklendiği teyit etmek için gcc -v ya da gcc –version komutu ile kontrol edebilirsiniz.

MacOS’de Kurulum

MacOS kullanıyorsanız, GCC’yi edinmenin en kolay yolu, Apple’ın web sitesinden ya da App Storedan Xcode geliştirme ortamını indirmek ve basit kurulum talimatlarını takip etmektir. Xcode kurulumunu yaptıktan sonra, C/C++ için GNU derleyicisini kullanabileceksiniz. Xcode kurulumundan sonra Terminalde gcc -v yazarak kurulumu teyit edebilirsiniz. Eğer aşağıdaki gibi bir çıktı alıyorsanız kurulum tamamlanmış demektir.

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Windows’ta Kurulum

Windows’ta GCC’yi kurmak için MinGW’yi kurmanız gerekir. MinGW’yi kurmak için, MinGW ana sayfasına gidin ve MinGW indirme sayfasına giden bağlantıyı izleyin. MinGW yükleme programının, MinGW-<sürüm>.exe olarak adlandırılması gereken en son sürümünü indirin.

Bu araçları komut satırında basit adlarıyla belirtebilmeniz için MinGW kurulumunuzun bin alt dizinini PATH ortam değişkeninize ekleyin .

Kurulum tamamlandıktan sonra, Windows komut satırından gcc, g++, ar, ranlib, dlltool ve diğer birkaç GNU aracını çalıştırabileceksiniz.

Bir sonraki yazımızda “Program Structure” olarak geçen Program Yapılarını inceleyeceğiz.