Giriş

Orijinalini görmek için tıklayınız : C'de Değişkenler ve Sabitler


Code
12 Ekim 2015, 21:42
Çoğu programda çıkış değerleri üretilmeden önce bir dizi hesaplamalar yapılır. Bu hesaplamalar esnasında verilerin geçici olarak saklanacağı alanların olması gerekir. C dilinde bu saklama alanlarına değişkenler denir. Veriler program içerisinde değişken ve sabit biçimlerinde kaydedilir. Değişkenler değerleri değiştirilebilen verilerdir. Sabitler ise değişkenlerin aksine atama yapıldıktan sonra değeri değiştirilemeyen verilerdir. Değişken ve sabitler faklı boyut ve biçimde program belleğine kaydedilirler.
1) Veri Türleri
Bütün değişkenlerin ne çeşit veri tutacağını belirten bir türünün olması gerekir. Değişkenler gömülü sistemin kısıtlı belleğine kaydedilir. Bu yüzden gömülü sistemde değişken tanımlanırken gereksiz yere bellek alanı israf edilmemesi gerekir. Bu yüzden tasarımcı değişken bildirimi esnasında değişkenin türünü tayin etme konusunda hassas davranması gerekir.
C programlama dilinde üç tane temel veri türü bulunur.


char
int
float

Bu veri türlerin önünde short, long, signed ve unsigned özel niteleyicileri kullanılarak veri türlerinin türevleri oluşturulabilir.
İşaretsiz (unsigned) ön eki kullanılarak, verilerin değerlerinin sıfır ve sıfırdan büyük olması sağlanabilir. İşaretli ve işaretsiz verilerin bellekteki uzunlukları aynıdır. Fakat işaretsiz türdeki verilerin üst limiti, işaretli türündekinin iki katına eşittir.
a) Char Türü
Char türü “0-9” ve “A-Z” gibi yazdırılabilir yada “enter,tab,yeni satır” gibi yazdırılamaz karakterlerden oluşur.
char veri türünü ve bellekteki kapladığı alanı aşağıdaki tabloda görebilirsiniz.
[Only Registered Users Can See Links]
b) Int türü
Tamsayıları ifade eder. int veri türünü ve bellekteki kapladığı alanı aşağıdaki tabloda görebilirsiniz.
[Only Registered Users Can See Links]
c) Float Türü
Gerçek sayıları ifade eder. double ve float olmak iki şekilde tanımlanır. float veri türünü ve bellekteki kapladığı alanı aşağıdaki tabloda görebilirsiniz.
[Only Registered Users Can See Links]

2) DEĞİŞKENLER
a) Değişken Bildirimi
Bir değişkenin programda kullanılabilmesi için program içerisinde bildiriminin yapılması gerekir. Değişkenin bildirimi, değişkenin türünü ve boyutunu gösteren özel amaçlı bir sözcük ve bir tanımlayıcı ile yapılır.
[Only Registered Users Can See Links]
long int numara;
b) Değişken Kapsamı
Değişkenlerin programda kullanılabilmesi için programın başında bildirimlerinin yapılması gerekir. Bir değişkenin kapsamı program içerisindeki erişilebilirliğidir. Değişken program içerisinde yerel yada genel olarak tanımlanabilir.


Yerel Değişkenler: fonksiyon tanımlandığı zaman, fonksiyon tarafından ayrılan bellek alanıdır. Bu değişkenler sadece tanımlandığı fonksiyon içerisinde anlamlıdır ve diğer fonksiyonlar tarafından kullanılamaz. Derleyici yerel değişkeni yalnızca tanımlandığı fonksiyonun bir parçası olarak gördüğü için, farklı fonksiyonlarda aynı isme sahip yerel değişkenler tanımlanabilir.
Genel Değişkenler: Derleyici tarafından ayrılan bellek alanları olup, bütün fonksiyonlar tarafından kullanılabilir.

Örnek
#include <stdio.h>
int sayi;//Genel değişken
int main()
{
int sayi_mod_2;//Yerel değişken
int sayi_mod_4;// Yerel değişken
sayi=1000;
sayi_mod_2 = sayi >> 1;
sayi_mod_4= sayi >>2;
printf("mod_2 = %d\n\r mod_4 = %d",sayi_mod_2,sayi_mod_4);
return 0;
}
3) SABİTLER
Sabitler program boyunca değeri değiştirilemeyen nesnelerdir. Sabitler birçok durumda derleyici programın parçası gibi davranırlar ve RAM’den ziyade ROM da saklanırlar.
X+5 atamasında “5” bir sabittir ve derleyici tarafından doğrudan toplama işlemine sokulur.
printf (“selam”); ifadesinde “selam” metni program belleğine yerleştirilir ve değeri değiştirilemez.
Programlayıcıda const özel sözcüğünü kullanıp sabit bildirimi yapabilir. Sabit bildiriminde const özel sözcüğü ile birlikte tanımlayıcı ismi, türü ve değeri belirtilmelidir.
constant unsigned char k =80;
Bir nesneyi sabit olarak tanımlamak nesnenin kısıtlı depolama alanı bulunan RAM yerine program kodunda saklanmasını neden olur. Bu ise sınırlı RAM alanının korunmasına yardımcı olur.
a) Sayısal Sabitler
Sayısal sabitler, sayısal tabanlarını göstermek ve programı daha okunabilir hale getirmek için farklı şekillerde bildirimleri yapılabilir. Örneğin sabitleri aşağıdaki gibi bildrimlerini yapabilirz.
[Only Registered Users Can See Links]
float türünde olan 32 sabitinin gösterimi aşağıdakilerden biri olabilir.
[Only Registered Users Can See Links]
b) Karakter Sabitleri
Karakter sabitleri “0-9” ve “A-Z”gibi yazdırılabilir yada “enter,tab,yeni satır” gibi yazdırılamaz karakterlerden oluşur. Yazdırılabilir karakter sabitleri tek tırnak içerisinde gösterilir(‘C’). Ayrıca karakter gösterimi ters slash ile birlikte temsil edilen sekizlik veya onaltılık değerlerini yazılarak da yapılabilir.
K karakterinin sekizli gösterimi ‘\113’ , onaltılık gösterimi ‘\x4B’ dir.
Ters slash ile tırnak karakterlerinin gösteriminde ise bu karakterlerin önüne ters slash konulur. Örneğin tırnak için gösterim ‘\’’, ters slash için gösterim’\\’ şeklindedir.


Örnek
const char temp='\x4B';
printf("Sabit== %c\n\r",temp);
Yukarıdaki ifade ekrana K karakterini basacaktır.
4) Tür Dönüştürme
Bazen programda tanımlanmış bir türün farklı türlere çevirme ihtiyacı doğabilir. Bu durumda tür dönüştürücüler kullanılarak var olan bir tür istenilen türe dönüştürülür.
Gösterimi dönüştürülecek türün parantez içerisinde yazılması ile şeklindedir.
(tür ismi)Tanımlayıcı
Örnek
int a=10;
char b='K';
int z;
.........
z= a +(int)b;

5) Sabit ve Değişken İsimleri
Sabit Ve Değişken İsimleri verilirken bazı kurallara uyulmak zorundadır. Bunlar

Değişken ve sabit isimleri en fazla 32 karakterden oluşabilir. 32 karakterden uzun isimlerde ilk 32 karakter kayda alınır . Geriye kalan karakterler işleme tabi tutulmaz.
Değişken ve sabit isimleri alt çizgi, ingiliz alfabesinde bulunan karakterler (A-Z) veya (a-z) , rakamlar (0-9) içermelidir. Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz.
Değişken ve sabit isimleri herhangi bir rakam ile başlayamaz. İlk karakter bir harf veya alt çizgi olmalıdır. Sonrakiler rakamlardan oluşabilir.
C 'nin özel sözcükleri sabit veya değişken ismi olarak kullanılamaz.

Örnek:
[Only Registered Users Can See Links]

6) sizeof Operatörü
Belirli bir tür değerinin kaydedilebilmesi için gerekli olan bellek alanının gösterir. Gösterim şekli aşağıdaki gibidir.
sizeof(tür ismi)
İşlem sonucunda işleme giren türün byte cinsinden değerini veren unsigned integer türünde bir değer elde edilir.
Örnek
#include <stdio.h>
int main() {
printf("Float boyutu = %d\n\r",sizeof(float));
printf("Double boyutu = %d\n\r",sizeof(double));
return 0; }
Yukarıdaki örneğin çıktısı aşağıdaki gibi olur.
Float boyutu = 4
Double boyutu = 8


Kaynak:FPGA Nedir - FPGA Hakkında Herşey ([Only Registered Users Can See Links])