C DERS 25: STACK (YIGIN) STATIC

Bellekten yer ayırıp, veri ekleme ve okuma yapacağız.

Static(yığın) bellekte Last In First Out kuralı vardır. Yani veriyi okumak istersek son

girilen değer ilk okunur. Bu sefer sadece main.c ile değil oluşturacağımız 2 dosya ile

daha çalışacağız. main.c, stackstatic.c(bellekten yer alma ve veri ekleme),

stackstatic.h(fonksiyonların deklarasyonları) dosyalarımız olacak.

main.c

//sol tarafta project'den 2 tane file açıyoruz.
//isimlerini stackstatic.h ve stackstatic.c yapıyoruz.

#include <stdio.h>
#include <stdlib.h>
#include "stackstatic.h"


int i=0;
int sayi=0;
int main(int argc, char *argv[]) {
	for(i=0;i<5;i++)
	{
		printf("sayi gir:");
		scanf("%d",&sayi);
		push(sayi);//Sayıyı alıp pusha gönderip ekleme
                //işlemi yapıyoruz.
	}
	while(!empty())
	{
		printf("%d",pop()); //pop fonksiyonuylada okuma
                //işlemi yapıyoruz
	}
	
	return 0;
}




stackstatic.c

#include <stdio.h>
#include <stdlib.h>
#include "stackstatic.h"

int stack[5]; // 5 elemanlı yaptık
int i=0; //dizideki indis gibi düşünebiliriz burdaki i' yi
void push(int veri)
{
	if(i<5) 
	{
		stack[i++]=veri; //klavyeden geleni atıp 
                //i' yi arttırıyoruz

	}
	
}
int pop()
{
	if(i>0)
	{
		return stack[--i]; //pushta ekleme yaparken en son
                // i' yi 1 arttırdık o yüzden son veriye gelmek için
                //1 azaltıp döndürüyoruz veriyi
	}
}
int empty()
{
	return i==0;
}

stackstatic.h

void push(int veri); //kullandığımız fonksiyonların deklarasyonları
int pop();
int empty();