C Dili derslerinin ilkinde, kullanılan IDE' lerden bahsettik. Ayrıca Eclipse kullanan Java Developer'ların ek bir IDE kullanmadan nasıl C kodlarını derleyeceklerini gösterdik.
Şimdi de niye C dili kullanılır, ayrıntıya girmeden bahsedelim. Günümüzde embedded programlama hariç herhalde kullanımı kalmamıştır diye düşünüyorum. Ancak bu dili özel yapan günümüzde kullanılan modern dillerin atası olmasıdır.
C++, C#, Java vs. gibi diller C syntax üzerine kurulmuştur. Yani C biliyorsanız bu dilleri anlamanız çocuk oyuncağı diyebilirim. C bu dillerle karşılaştırıldığında Low-Level statüsüne girebilir.
C ile; genel syntax'i anlayabilir, yapısal programlama dili kavramını öğrenebilir ve hafızaya doğrudan erişim sağlayabilirsiniz. Hafızadan kastımız tabii ki RAM'dir.(Primary Memory). İlerleyen derslerde bahsedeceğimiz diskten kastımız da HDD yani hardisktir. (Secondary Memory).
Örneğin doğum tarihini hesaplayan bir program yazmak istediniz. Yazdığınız uygulama CPU'da çalıştırılır. Kişiden aldığınız doğum tarihi klavyeden okunur, RAM'de tutulur ve hesaplama işlemini CPU yapar. Son olarak sonucu monitör yani ekranda gösterirsiniz.
C dili ile yazdığınız programlar, işletim sistemi üzerinde çalışır. Aslında her program, çalışmak için bir işletim sistemine ihtiyaç duyar. Bu programların çalışması için işletim sistemine özel bazı fonksiyonların çağrılması gerekir.
Standart girdimiz olan klavyenin ya da standart çıktımız olan monitörün kontrolü işletim sisteminin elindedir. İşletim sistemleri bu tür işlemler için özel bazı izinler verir. O fonksiyonları kullanarak biz de programımızı yazarız.
C standart bir dil olduğundan her işletim sistemindeki C derleyicisi bu izin/fonksiyonları ortak bir hale getirmiştir.
Kaynak kod olarak ifade ettiğimiz source code; C syntax'i ile yazılmış program dosyasıdır.(Programcının yazdığı kod dosyası). Bu dosya Compiler ile derlendikten sonra makinenin anladığı machine language'e çevrilir. İşletim sistemi machine kodu hafızaya yükler ve yüklenen kod işletim sistemi tarafından CPU'da çalıştırılır. Genel çalışma mantığı böyledir.
Basit bir kod örneği verip dili anlamaya çalışalım. Klasik ekrana "Merhaba Dünya" yazan bir uygulama :
Uygulamanın çıktısı aşağıdaki gibidir :
Kod üzerinde konuşalım. # include ile belirtilen ifadeler, kod içerisinde kullanılacak fonksiyonların bulunduğu kütüphanelerdir. Bu anahtar kelimeyi kullanarak bu kütüphaneleri kodumuza dahil ederiz.
stdio.h kütüphanesi standard input output fonksiyonlarını içerir. Yani ekrana yazmak için gereken puts ya da printf fonksiyonlarını kullanabilmek için bu kütüphaneyi dahil etmeliyiz.
int main() ile belirtilen ifade ise main fonksiyonudur. C syntax dillerde, program main fonksiyonu ile başlayıp onunla biter. Yani çalıştırılabilir (.exe) programların hepsinde 1 adet main metodu bulunmak zorundadır. { } süslü parantezler genel olarak kapsama alanı olarak geçse de fonksiyonlar için fonksiyonun içeriğini içine alan bloksal yapıdır.
Fonksiyonları, programlardaki iş yapan bölümler olarak düşünebilirsiniz. puts() ve printf() de benzer şekilde fonksiyondur. Parantez içine yazılan string ifadeyi ekrana basmak için kullanılır.
main fonksiyonunun başındaki int ile belirtilen terim fonksiyonun geri dönüş değer tipidir. return ile belirtilen ifade de gene bu geri dönüş değerini döndürmek için kullanılır. Şimdilik anlamaya gerek yok. İlerde ayrıntısına girerim.
Son olarak C syntax dillerde, her bir ifade ; (noktalı virgül) ile sonlandırılır.
Buraya kadar özetleyecek olursak yazılımın temel öğeleri; İşletim Sistemi(I/O), Kaynak kod, Makine kodu ve Compiler dediğimiz derleyicilerdir.
Değişkenler (Variables)
Değişkenler, programlama dillerinde verilerin tutulduğu yapılardır. Bu yapılar hafızada RAM de bulunur ve geçici olarak bir değer tutmaya yararlar.
Kaynak
Bir değişken 4 şeyden oluşur :
- Değişken ismi
- Değişken tipi (int,float,double,char...)
- Değişkenin değeri
- Hafızadaki yeri
Değişkenleri anlamak için basit bir uygulama yapıp dersi sonlandıralım.
Uygulamayı çalıştırdığımızda alacağımız çıktı da aşağıdaki gibidir :
Bu uygulamada a,b,c ve sum adında 4 değişken tanımladık. Bunlardan a, b, ve c ismindeki değişkenler int yani integer(tam sayı) tipindedir ve içerisine ancak tam sayı değerleri alabilir. sum değişkeni ise float tipinde olduğundan içerisine ondalıklı sayı alabilir.
degisken_tipi degisken_ismi;
şeklinde değişken tanımlaması yaptığımızda ilk değer ataması yapmamış oluruz. sum değişkeni bu şekilde tanımlanmıştır. Ancak uygulamada görüldüğü gibi a,b ve c değişkenlerinin her birine ilk değer ataması yapılmıştır.
sum = a + b + c;
ifadesi ile a,b ve c nin toplamını sum değişkenine atamış olduk. Programlama da '=' operatörü atama operatörüdür ve eşitliğin sağ tarafındaki değeri sol taraftakine atamak için kullanılır.
printf() fonksiyonu ile ekrana bir şeyler yazdırdığımızdan bahsetmiştim. Kullanımı uygulamadaki gibidir. Eğer yazdırılacak değerler string dışındaki int, float gibi değerler ise int için %d, float için %f karakterlerini kullanmak gerekiyor. printf fonksiyonundaki '\n' karakteri ise bir alt satıra geçmek için kullanılır. \n : new line
Son olarak derleyiciden kaynaklı sorunlar yaşayanlar için alternatif online bir compiler buldum.
Online C Compiler'da da kullanıcıdan bir sayı alan ve bunu ekrana basan halini test ettim. Siz de deneyebilirsiniz.
Ekran çıktımız aşağıdaki gibidir :
Not : Aldığınız bazı hataların derleyici kaynaklı olduğunu düşünüyorsanız, Online C Compiler'ı buradan deneyebilirsiniz. Test ettim, gayet iyi çalışıyor.
Not : Crayon Syntax Highlighter eklentisi C dili için çalışmadı. (Belki de Wordpress Güncellemesinin sonucudur. Denemeye devam...)
Uygulama noktasında herhangi bir sorun yaşarsanız aşağıdaki yorum panelini kullanarak iletişime geçmekten çekinmeyin lütfen. Teşekkürler.
Kaynak belirtilmeyen görseller a aittir. / Pictures that don’t have any source belongs to
.
Posted from my blog with SteemPress : http://etasarim.cloudaccess.host/22/02/2019/degiskenler-c-programlama-dili/