08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

#include <br />

#include "c:\headers\myheader.h"<br />

#include önişlemci komutu kaynak programın herhangi bir yerinde bulunabilir. Fakat<br />

standart başlık dosyaları gibi, içinde çeşitli bildirimlerin bulunduğu dosyalar için en iyi yer,<br />

kuşkusuz programın en tepesidir.<br />

#include komutu, iç içe geçmiş (nested) bir biçimde de bulunabilir. Örneğin çok sayıda<br />

dosyayı kaynak koda eklemek etmek için şöyle bir yöntem izlenebilir.<br />

ana.c<br />

#include "project.h"<br />

int main()<br />

{<br />

/****/<br />

}<br />

project.h<br />

#include <br />

#include <br />

#include <br />

#include <br />

ana.c dosyası içine yalnızca project.h dosyası ekleniyor. Önişlemci bu dosyayı kaynak<br />

koda ekledikten sonra yoluna bu dosyadan devam eder.<br />

Başlık Dosyaları Neden Kullanılır?<br />

Özellikle büyük programlar, modül ismi verilen ayrı ayrı parçalar halinde yazılır. Bu<br />

modüllerden bazılarının amacı, diğer modüllere hizmet vermektir. C ve C++ dillerinde,<br />

genel hizmet verecek kodlar (server codes), genel olarak iki ayrı dosya halinde yazılır.<br />

İşlev tanımlamaları, global değişken tanımlamaları uzantısı .c olan dosyada yer alır. Bu<br />

dosyaya, kodlama dosyası (implementation file) denir. Hizmet alacak kodları (client<br />

codes) ilgilendiren bildirimler ise bir başka dosyada tutulur. Bu dosyaya, başlık dosyası<br />

(header file) denir. Bir başlık dosyası, bir modülün arayüzüdür (interface). Modül dışarıyla<br />

olan ilişkisini arayüzü ile kurar.<br />

Verilen hizmetlerden faydalanacak kullanıcı kodlar, hizmet veren kodların kendisini değil,<br />

yalnızca arayüzünü görür. Hizmet alan kodlar, hizmet veren kodların arayüzlerine bağlı<br />

olarak yazılır. Böylece hizmet veren kodların kendisi ile arayüzleri, birbirinden net olarak<br />

ayrılmış olur.<br />

Hizmet veren kodların arayüzleriyle tanımlarını birbirinden ayırmanın ne gibi faydaları<br />

olabilir?<br />

Kullanıcı kodlar, yani hizmet alan kodlar, hizmet veren işlevlerin tanımlarına göre değil<br />

de, arayüzlerine bağlı olarak yazılır. Bundan aşağıdaki faydalar sağlanabilir:<br />

1. Hizmet veren kodları yazanlar, aynı arayüze bağlı kalmak kaydıyla, tanım kodlarında<br />

değişiklik yapabilir. Bu durumda hizmet alan kodlarda bir değişiklik yapılması gerekmez.<br />

2. Kullanıcı kodları yazacak programcı, hizmet veren kodlara ilişkin uygulama ayrıntılarını<br />

bilmek zorunda kalmadığından, daha kolay soyutlama yapar.<br />

3. Birden fazla programcının aynı projede çalışması durumunda, proje geliştirme süresi<br />

kısaltılmış olur.<br />

167/529

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!