C++ Header dosyasında değişken ilklendirme

Bildiğiniz gibi c++ başlık dosylarında değişken tanımlarında ilk bir değere ataması yaparak tanımlayamıyorduk, yani aslında değikeni başlıkta tnaımlayıp cpp implemantasyon dosyasında değer atamanız gerekmekteydi. Geçenlerde ihtiyaç duyduğum bu can alıcı şeyi burada size de sunmak istedim. Header dosyları içinde her yerde kullanabileceğiniz değişkenler tanımlayabilmek bunun için çok ilginç ve c++’ın gücünü ve yapabileceklerinizin neyle sınırlı olduğunu gösterebilecek yöntem.Teknik olarak cpp veya c dosyaları içinde değişkenlerinizi yaratıp extern ifadeleriyle erişebilmenize rağmen, bunu header dosyasında yapmak include ettiğiniz her yerde bunları kullanabilme esnekliği sağlıyor.

Aşağıdaki gibi bir header dosyası oluşturuyoruz.

/*-----------------------------------------------------------------------
VARS.H

Not: #define VAR_DECLS 1 before including this file to DECLARE and INITIALIZE global variables.  Include this file without defining VAR_DECLS to extern these variables.
------------------------------------------------------------------------*/
#ifndef VAR_DEFS  //bu dosyanın sadece 1 kere eklendiğinden emin olun
#define VAR_DEFS 1

/*----------------------------------------------
Değişkenlere c ifadesi katacak ifadeleri oluşturuyoruz
----------------------------------------------*/
#ifndef VAR_DECLS
# define _DECL extern
# define _INIT(x)
#else
# define _DECL
# define _INIT(x)  = x
#endif // VAR_DECLS

/*----------------------------------------------
Declare variables as follows:
_DECL [değişken cinsi ve adı] _INIT(x);
X: Değişkene vereceğiniz ilk değer eğer ilk değer vermek istemiyorsak:
_DECL [değişken cinsi ve adı];
----------------------------------------------*/

_DECL int var_a _INIT(100);
_DECL int var_b;
_DECL int var_c _INIT(27);

#endif // VAR_DEFS

Burada örnek olarak 3 tane global değişken tanımlamış olduk. Şimdi dikkat edeceğimiz tek şey bu dosyayı include etmeden önce aşağıdaki şekilde tanımlama yapmak. VAR_DECLS ifadesini header dosyamızdan hatırlayın. Eğer ilk ifadeyi kullanmıyorsak ozaman extern ifadesi ile erişmemiz gerek.

#define VAR_DECLS
#include "vars.h"

var_b:2700
Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s