MikroC Ayırıcı İşaretler ve Depolama Sınıfları

mikroc

MikroC’de kullanılan on adet ayırıcı işaret (Separators) vardır. Kullanılan bu işaretlerin bazıları aynı zamanda operatör olarak da kullanılabilir. Detaylı bir şekilde incelemeye başlamadan önce dilerseniz bu işaretleri tanıyalım.

  •  []            – köşeli parantez
  •  ()            – parantez
  • {}            – küme parantezi
  • ,              – virgül
  • ;              – noktalı virgül
  •              – iki nokta
  • .              – nokta
  • *             – yıldız işareti
  • =             – eşittir işareti
  • #             – diyez işareti

Köşeli Parantez  “ []

Bu işaret, dizilerin uzunluklarını ve indislerini belirlemek için kullanılmaktadır.

char str[5] =  “MertA”;                  //str dizisinin içine MertA string ifadesi atıldı

İnt mat [4] [5] ;                                // 4 x 5 matriks

ch = str [4];                                        // dizinin 5. Elemanı

Parantez “ ()

Parantez işareti, aritmetik işlemlerdeki işlem önceliğinde, karşılaştırmalarda, fonksiyon çağrılarında ve bildirimlerinde kullanılmaktadır.

x = y * (z+1);                                     // İşlem önceliği için kullanımına bir örnek

if (x == z) ++x                                   // x ile z arasındaki eşitlik kontrol ediliyor

fonk();                                                 // fonksiyon çağrısı

void fonk1(int y);                            // parametreleriyle beraber fonksiyon bildirimi

Küme Parantezi “ {}

Küme parantezi bir kod bloğunun başlangıcını ve sonunu belirtir.

while(1) {

PORTB.RB0=1;

PORTC.RC4=0;

}

Virgül “ ,

Virgül, fonksiyon parametrelerinin arasına, aynı türdeki değişkenleri tanımlarken bu dizilerin arasına veya dizi elemanlarının arasına koyularak kullanılmaktadır.

fonk(x, y, z);                                     // Üç argümanlı bir fonksiyon çağrısında kullanıldı

char x, y, z;                                        // Aynı türde üç değişken atanmasında kullanıldı

const char Dizi[3] = ( 1, 2, 3);      // Dizi elemanlarını ayırmada kullanıldı

Noktalı Virgül “ ;

MikroC’de her komut satırının sonunda noktalı virgül kullanılır. Noktalı virgül, satırın sona erdiğini ve işlemin yapılacağını gösterir. Ayrıca noktalı virgül assembly kod bloklarında açıklama satırlarında kullanılmaktadır. MikroC üzerinde assembly kod kullanmayı ilerleyen bölümlerde göreceğiz.

TRISB=0;

PORTB=0;

İki Nokta “ :

MikroC’de pek kullanımına gerek olmasa da, etiketleri tanımlamada kullanılmaktadır.

basla: x = 0;

goto basla

Nokta “ .

Nokta işareti, bir yapı alanına ya da herhangi bir registerın bir bit alanına ulaşmak için kullanılmaktadır.

TRISB.RB0 = 0;                                                  // B registerının 0. Biti çıkış olarak ayarlandı

Yıldız İşareti “ *

Bu işaret, gösterileri tanımlamada kullanılmaktadır. Göstericiler dolaylı adreslemede kullanılır fakat bu bölümde sadece kullanımını göstereceğiz.

char       *char_pt;                                           // karakter tipinde bir verinin adresi saklanacak

Eşittir İşareti “ =

Eşittir işareti, değişken ya da sabitlere değer vermek için kullanılır.

unsigned short veri[4] = { 1, 2, 3, 4 };      // veri dizisine 1, 2, 3, 4 değerleri verildi

unsigned short x = 34;                                  // x’ e 34 değeri verildi

Not: =” işareti ile “==” işareti birbirine karıştırılmamalıdır. “==” işareti karşılaştırma işlemlerinde eşitliğin olup olmadığını kontrol eder, “=” işareti ise değer atama işlemlerinde kullanılır.

Diyez İşareti “ #

Önişlemci komutlarında kullanılır. Bu komutlar, kod bloğunun en üstünde bulunmalıdır.

#include <test.h>                                           // test.h kütüphanesini programa ekler

#include “test.h”                                            // kütüphane çağırmanın bir başka yöntemi

#define b0 PORTB.RB0                                 // Port B’nin 0. Bitini kullanmak için b0 kullanılabilir

Ayırıcı işaretlerinin kullanım kısmı bu kadar. Şimdi sıra geldi depolama sınıflarına. Depolama sınıflarından bahsedecek olursak, bir değişken veya fonksiyonun program içindeki ömrünü belirler. MikroC programında kullanabileceğimiz dört farklı belirleyici türü vardır. Bu belirleyiciler de otomatik depolama ömürlüler ve durağan depolama ömürlüler olarak ikiye ayrılır. Dilerseniz bu dört belirleyici türü yakından inceleyelim.

Auto

Varsayılan olarak bütün değişkenler auto olarak kabul edilir. Auto veri depolama yöntemi, değişkenin lokal bir değişken olduğunu belirtir. Yani auto olarak tanımlanmış bir değişkene oluşturduğu fonksiyon veya kod bloğunun içinde erişilebilir.

Register

Register veri depolama yöntemi, RAM yerine bir kaydediciye depolanan bir lokal değişken tanımlamak için kullanılır. MikroC’de register veri depolama yöntemi kullanılamaz. C dili için geçerli bir kuraldır.

Static

Static olarak tanımlanan bir değişken, programın çalışmasıyla beraber hafızaya yerleşir ve program sonlanana kadar hafızadan silinmez.

void fonk() {

int x = 1;                                                             // fonk her çağrıldığımda x’e 1 değeri atılır

static int y = 1;                                                  // fonk ilk çağrıldığında y içine 1 değeri atılır ve bu saklanır

x++;                                                                     // x’in değerini 1 arttırır

y++;                                                                     // y’nin değerini bir arttırır

}

Üstteki program bloğunda, y değişkeni tanımlanırken veri depolama sınıfını static olarak seçtik. Blokta fonk her çağırıldığında x değişkenine 1 değeri atılacağından, x’in değeri aynı kalacakken, y değişkeninin depolama sınıfı static olduğundan, ilk çağrılışından itibaren her fonk çağrıldığında değeri 1 artacaktır.

Extern

Global değişkenler ve fonksiyonlar varsayılan olarak extern tanımlıdır. Global değişkenler fonksiyonların dışında tanımlanan değişkenlerdir. Bir değişkenin global olması programın çalıştığı andan itibaren bellekte tutulması anlamına gelmektedir

Bu yazıda bahsedeceklerimiz bu kadar. Bir sonraki yazımızda Veri Türleri başta olmak üzere birkaç konuya değineceğiz. Görüşmek üzere.

Click to rate this post!
[Total: 0 Average: 0]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir