C Dili

C Dersleri

C Dili Tarihçesi

C Dili 1970’li yılların başında AT & T BELL Laboratuvarlarında  Dennis Ritchie tarafından yazılmıştır.
C gelişiminin arkasındaki temel fikir UNIX İşletim Sistemini geliştirmektir. 1970’lerde sadece BELL LABS’da kullanıldı ve daha sonra programcılar kendi programları için C dilini kullanmaya başladılar ve bu nedenle 1983’te AMERICAN ULUSAL STANDARTLARI ENSTİTÜSÜ (ANSI),  için C için bir standart oluşturdu. O zamandan sonra C mevcut dillerin  (ALGOL, PL / I, vb.) yerini  başladı.

Bu hikayenin tamamı Ortak Programlama Dili (CPL) ile başladı.  Cambridge Üniversitesi’ndeki Martin Richards, CPL’yi   ‘Basic Programming Language(BCPL)’ye dönüştürdü.

Daha sonra BELL LABS’da Ken Thompson, BCPL’nin izlediği bir dil yazdı ve B olarak adlandırdı. C, B’nin bir halefi olarak  C olarak adlandırılır.  C dili BCPL ve B dilinin deyimlerinin çoğunu içermektedir.

Neden C Dilini Bilmek Gerekir

Günümüzde dünyada çeşitli amaçlarla  bir çok programlama dili kullanılmaktadır. Bunlarda bazılarını C++, Java, Swift, PHP, Basic, Python, Go, C# olarak örnekleri uzatabiliriz.Bunların hepsi C’nin orta seviyede olduğu yüksek seviyeli dillerdir.

C dili ne Assembly kadar düşük, ne de yukarıdaki diller kadar yüksek seviyeli bir dildir. C donanıma daha yakın programlama dillerinden biridir. Bu yüzden orta seviyeli dil olarak gruplanır.

Java, C++ vb. diller kalıtım olarak C dili temel almıştır. Unix işletim sistemi C ile geliştirilmiştir.

C küçük bir dildir. çünkü C sadece 32 anahtar kelimeye sahiptir ve 20 tanesi ortak kullanımlıdır. Bu nedenle, başka herhangi bir yüksek seviyeli dil ile karşılaştırıldığında, C öğrenme daha kolaydır.

Çoğunlukla C dili üst seviyeli programlama dillerinin yanında ikinci dil olarak öğrenilir.

C 1983 yılından beri programcılar tarafından kullanılır.  C ile yazılmış çok sayıda program bulmak mümkündür.

C Dilinin Yapısı

Bu yazıda C programlama dilinin temel yapısı hakkında bilgi sahibi olacaksınız.

Belgeleme: Bu bölüm yorumlar, program tanımı ve program yazarı hakkındaki bilgilerden ve sonra referans verilebilecek bilgilerden oluşur.

Kütüphaneler:  Programda kullanılan C kütüphanelerinin ve  fonksiyonlarının tanımlandığı bölümdür.

Tanımlama: Sabitlerin tanımlandığı bölümdür.

Global Bildirim: Program içinde global olarak kullanılacak fonksiyonların ve değişkenler tanımlanır.

main( ) {   }: Programın çalıştırıldığı ana bölümüdür.  Her C programı main metodu içinden başlar. Programda en az bir tane main metodu bulunmalıdır.

Kullanıcı Tanımlı Fonksiyonlar: Kullanıcıların tanımladığı metodları ifade eder.

 

Örnek:

 

Yukarıda tanımlanan blokları yazalım

Belgeleme:

 

Kütüphaneler:

 

Tanımlama:

 

Global Tanımlama:

 

main Fonksiyonu:

 

Kullanıcı Tanımlı Fonksiyon:

İlk C Programı – Merhaba Dünya

Bir önceki yazıda her C programının bir main metodu ile başladığını ifade etmiştik.  Bununla birlikte derleyiciye ekrana çıktı almak için standart kütüphanesini kullandığımızı da ifade ederek aşağıdaki C kodumuzu yazıyoruz.

…devam ediyor…

 

C Dili Yazım Kuralı

Belirteçler

Bir C programı çeşitli belirteçlerden oluşmaktadır. Bunlar anahtar kelime, bir tanımlayıcı, sabit, dize  veya özel bir sembol olabilir.

Örneğin aşağıdaki C programında 5 tane belirteç mevcuttur. Mevcut kodun çalışması için de hepsini yazmak gereklidir.

 

Belirteçlere satır satır bakalım.

 

Noktalı Virgül

Her C ifadesini bitirmek için noktalı virgül kullanılması gerekir. İfade yazıldıktan sonra noktalı virgül sembolü ile sonlandırılır.

Aşağıda iki ayrı ifadeyi sonlardırmak için sonlarına noktalı virgül konulmuştur.

Yorumlar

Yazdığımız kodlarda bazen açıklamalar yapma ihtiyacımız olabilir. C dilinde birden fazla satırda yorum yapmak için  /* ….*/ sembolleri ve tek satırda yorum yapmak için // sembolleri kullanılır.

 

Tanımlayıcılar

Her programlama dilinde olduğu gibi C dilinin de kendisine özel ifadeleri vardır. Bu ifadeler C içinde rezerve edildiği için program içinde kullanılmazlar. Daha önceki yazılarda 32 tane C diline ait özel ifadenin olduğunu yazmıştım.

İşte C diline ait özel ifadelerin listesi

C Dili Anahtar Kelimeleri
auto break case char
const continue default do
double else enum extern
float for goto if
int long register return
short signed sizeof static
struct switch typedef union
unsigned void volatile while

 

C Dilinde Beyaz Boşluk

Bir çok programlama dilinde whitespace olarak ifade edilir. Sadece bir boşluk içeren, muhtemelen bir yorum içeren bir satır boş satır olarak bilinir ve bir C derleyicisi bunu tamamen yok sayar.

Ayrıca boşluk, bir ifadenin bir bölümünü diğerinden ayırır ve derleyicinin, int, bit ve sonraki öğe gibi bir ifadedeki bir öğenin nerede başladığını tanımlamasını sağlar.

C Dilindeki Anahtar Kelimelerin Listesi

Bu C dersinde, C dilinde bulunan tüm anahtar kelimelerin (toplam 32 anahtar kelime) kullanımı ile bilgiler sağlamaktadır.

C Dilinde Kullanılan Anahtar Kelimeler

Aşağıdaki liste C dilinde rezerve edilmiş olan tüm anahtar kelimelerin listesini içermektedir.

C Dilindeki Anahtar Kelimeler
auto break case char
const continue default do
double else enum extern
float for goto if
int long register return
short signed sizeof static
struct switch typedef union
unsigned void volatile while

 

C Dilindeki Anahtar Kelimelerin Tanımları

auto

Otomatik tanımlanan değişkenleri belirtmek için bildirilir. Fonksiyon gövdesinde yerel bir değişken oluşturup, kullanmak için vardır. Fakat C dilinde neredeyse bütün değişkenler yerel olduğu düşünülürse çok fazla kullanım alanı yoktur.

 

Yukarıdaki fonksiyon her çalıştırıldığında değişken yeniden oluşturulmaktadır. Normalde de yeniden oluşturulmaktadır.

 

break ve continue

break: programı döngü deyiminden dışarı atmak için kullanılır.

continue: kendinden sonraki kodları atlayarak döngü deyiminden devam etmesi için kullanılır.

Yukarıdaki kod içinde i=2 olduğunda continue çalıştığı yerden program atlıyor. i=10 olduğunda da program döngüden çıkıyor.

 

switch, case ve default

Switch ve case deyimi, birçok blok arasında bir ifade bloğu yürütülmesi gerektiğinde kullanılır.

 

char

Karakter türünde değişken oluşturmak için kullanılan anahtar kelimedir.
Not: C dilinde string türü olmadğı için karakterlerden oluşan dizi ile string tanımlaması yapılmaktadır.

 

const

C dilinde sabit tanımlaması yapmak için kullanılan anahtar kelimedir.

 

do…while

do … while döngü deyimidir.

 

double ve float

Ondalıklı sayı oluşturmak için kullanılan anahtar kelimelerdir. float 32bit yer kaplarken double 64bit yer kaplamaktadır.

 

if … else

Koşul deyimleri oluşturmak için kullanılan anahtar kelimedir. else ifadesi her zaman kullanılmak zorunda değildir.

 

enum

Numaralandırılmış yapılar oluşturmak için kullanılır. Tanımladığımız bir bloğu numaralandırarak kullanma imkanı verir.

 

extern

Extern anahtar sözcüğü, bir değişken veya bir fonksiyonun, bildirilen dosyanın dışında harici bir bağlantı olduğunu bildirir.

 

for

Döngü deyimi oluşturmak için kullanılır.

 

goto

goto anahtar kelimesi, bir fonksiyon içindeki etiketli bir ifadeye koşulsuz olarak atlama için kullanılır.

int

Tam sayı türünde değişken oluşturmak için kullanılır.

 

short, long, signed ve unsigned

int türünde kısa, uzun, işaretli(negatif)  ve işaretsiz değişkenler oluşturmak için kullanılır.

Veri Türü Aralık
short int -32768 to 32767
long int -2147483648 to 214743648
signed int -32768 to 32767
unsigned int 0 to 65535

return

Fonksiyonu sonlandırıp değer döndürmek için kullanılır.

 

sizeof

Değişkenin yada veri türünün büyüklüğünü hesaplar.

 

register

Belleğin register oluşturmak için kullanılır. Bu şekilde oluşturulduğunda değişken ile ilgili bellek yönetimini kendimizin yapacağını ifade etmiş oluruz. Böylelikle değişkenin daha hızlı çalışacağı umut edilir.

Kişisel not: C dilinin çok eski bir dil olduğu düşünülürse kullandığımız derleyiciler register değişken için ne kadar izin verir bilmiyorum.

 

static

Deyimlerin içinde statik değişkenler oluşturmak için kullanılır. Fonksyion sonuna kadar değişken aynı değeri korumaktadır.  Not: static yerel , const genel tanımlanır.

 

struct

Yapı anahtar sözcüğü bir yapıyı bildirmek için kullanılır. Bir yapı tek bir isim altında farklı tiplerdeki değişkenleri tutabilir.

 

typedef

Typedef anahtar sözcüğü, bir tanımlayıcı ile bir türü açıkça ilişkilendirmek için kullanılır.

union

Bir union, tek bir isim altında farklı değişken türlerini gruplamak için kullanılır.

 

void

Bir fonksiyonun geriye dönüş değerinin olmadığını ifade etmek için kullanılır.

C Aritmetik Operatör İşlemleri

C programlama dilinde aritmetik operatörün kullanımı ile ilgili basit örnekler. C dilinde kullanılan topla, çıkarma, bölme, çarpma, mod alma, arttırma ve azaltma operatörleri ile ilgili basit örnekler.

 

C Dilinde Veri Tipleri

C programlama dilinde veri tipleri, değişkenleri tanımlamak yada fonksiyonların tiplarini tanımlamak için kullanılır. Bir değişken bellekte ne kadar yer tutacağını  veri tipi ile belirler.

C programlama dilinde veri tipleri aşağıdaki gibi sınıflandırabilir.

Tip Tanımı
Temel Tipler  Ondalıklı ve tam sayı olarak sınıflandırılmış tiplerdir.
Numaralandırılmış
(Enumerated) Tipler 
 

İşaretlenmiş aritmetik tipler olarak ifade edilebilir. signed yada unsigned işareti ile değişkenin aralığı değiştirilebilir.

void (boş) Tipi Hiçbir değerin olmadığını ifade etmek için kullanılan tiptir.
Türetilmiş Tipler Pointer (İşaretçi) Tipi
Array (Dizi ) Tipi
Structure ( Yapı ) Tipi
Union ( Gruplama) Tipi
Function ( Fonksiyon) Tipi

 

Integer Tipler

Aşağıdaki tablo tamsayı tiplerinin bellek boyutlarını ve değer aralıklarını göstermektedir.

Tip Boyut Değer Aralığı
char 1 byte -128 ile 127 yada 0 ile 255
unsigned char 1 byte 0 ile 255
signed char 1 byte -128 ile 127
int 2 or 4 bytes -32,768 ile 32,767 yada -2,147,483,648 ile 2,147,483,647
unsigned int 2 or 4 bytes 0 ile 65,535 yada 0 ile 4,294,967,295
short 2 bytes -32,768 ile 32,767
unsigned short 2 bytes 0 ile 65,535
long 4 bytes -2,147,483,648 ile 2,147,483,647
unsigned long 4 bytes 0 ile 4,294,967,295

 

Belirli bir platformdaki bir türün veya bir değişkenin tam boyutunu elde etmek için sizeof operatörünü kullanabilirsiniz.  Sizeof (type) ifadeleri, nesnenin depolama boyutunu ya da bayt cinsinden yazmayı sağlar.

Aşağıda, herhangi bir makinede int türünün boyutunu almak için bir örnek verilmiştir

Program çalıştırıldığında int türünün boyutu 4 olarak verecektir.

 

Kayan Noktalı (Floating-Point) Tipi

Daha büyük sayı değerleri ve ondalıklı sayılar için floating(kayan) veri tipleri kullanılır. Bunlar dobule ve float olarak ifade edilir. Aşağıdaki tabloda bu tiplerin bellekte kapladığı alan ve değer aralıkları verilmiştir.

Tip Boyut Değer Aralığı Ondalık
float 4 byte 1.2E-38 ile 3.4E+38 6  ondalık basamak
double 8 byte 2.3E-308 ile 1.7E+308 15 ondalık basamak
long double 10 byte 3.4E-4932 ile 1.1E+4932 19 ondalık basamak

 

…devam edecek…

 

 

About the author

admin

Add Comment

Click here to post a comment

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.