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 />

BOOL türü, özellikle işlevlerin geri dönüş değerlerinde kullanılır. Bu durum işlevin<br />

başarılıysa 0 dışı bir değere, başarısızsa 0 değerine geri döneceği anlamına gelir. Başarı<br />

kontrolü, 1 değeriyle karşılaştırılarak yapılmamalıdır.<br />

Aşağıdaki typedef isimleri, işaretsiz 1 byte, 2 byte ve 4 byte tam sayıları simgeler.<br />

typedef unsigned char BYTE;<br />

typedef unsigned short WORD;<br />

typedef unsigned long int DWORD;<br />

typedef unsigned int UINT;<br />

Göstericilere ilişkin typedef isimleri P harfiyle başlar. LP uzak göstericileri belirtmek için<br />

ön ek olarak kullanılır. Win16 sistemlerinde uzak ve yakın gösterici kavramları vardı.<br />

Dolayısıyla o zamanlar, P önekli göstericiler yakın göstericileri, LP önekli göstericiler ise<br />

uzak göstericileri temsil ediyordu. Fakat Win32 sistemlerinde yakın ve uzak gösterici<br />

kavramları yoktur. Bu durumda, P önekli göstericilerle LP önekli göstericiler arasında<br />

hiçbir fark yoktur. Ancak, Win16'daki alışkanlıkla hala LP önekli typedef isimleri kullanılır.<br />

Windows.h içinde her ihtimale karşı -Win16 programları çalışabilsin diye- near ve far<br />

sözcükleri aşağıdaki gibi silinmiştir.<br />

#define far<br />

#define near<br />

typedef char near *PSTR;<br />

typedef char far *LPSTR;<br />

PSTR ya da LPSTR Win32 sistemlerinde tamamen aynı anlama gelir ve char* türünü<br />

belirtir.<br />

typedef char *PSTR;<br />

typedef char *LPSTR;<br />

Göstericilerde const'luk P ya da LP'den sonra C ekiyle belirtilir. Örneğin;<br />

typedef const char *PCSTR;<br />

typedef const char *LPCSTR;<br />

Klasik typedef isimlerinin hepsinin gösterici karşılıkları da vardır. Bütün gösterici türleri,<br />

Win16 uyumlu olması için P ve LP önekleriyle ayrıca bildirilmiştir.<br />

typedef BYTE *PBYTE;<br />

typedef WORD *PWORD;<br />

typedef const BYTE *PCBYTE;<br />

typedef const DWORD *LPCDWORD;<br />

C'nin doğal türlerinin hepsinin büyük harf normal, adres ve const adres biçimleri vardır.<br />

typedef long LONG;<br />

typedef int INT;<br />

typedef char CHAR;<br />

Windows programlamada H ile başlayan, handle olarak kullanılan pek çok typedef ismi<br />

vardır. Bu typedef isimlerinin hepsi void * türündendir. Örneğin:<br />

typedef void<br />

typedef void<br />

*HWND;<br />

*HICON;<br />

396

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

Saved successfully!

Ooh no, something went wrong!