-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdepolama_belirtecleri.c
35 lines (31 loc) · 1.3 KB
/
depolama_belirtecleri.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
static int stat = 50;
/* statik değişkenler,
tanımlandıkları blok ve o bloğun dışında geçerlidir.
global olarak tanımlanabilirler.
fonksiyon tanımları arasında değerlerini korurlar.
bir fonksiyona parametre olarak verilemezler.
*/
int main(void)
{
/* Değişkenleri/fonksiyonların depolama şeklini belirtmek
için 4 farklı anahtar kelimemiz vardır: auto, extern, static, register
*/
/* Not: Değişken tanımlanırken bu kelimelerden yalnızca birisini kullanmak gerekir.
Diğer türlü hata verecektir.
*/
/* auto sınıfındakiler, stack'te saklanır.
İlk değeri rastgele (garbage value) değerdir.
Varsayılan olarak tanımladığımız fonksiyon/değişkenler bu sınıfa dahildir.
Yalnızca tanımlandıkları yerde (block) kullanılabilirler.
*/
int sayi1 = 45; /* aslında bu sayi auto int sayi1 = 45 şeklinde ifade edilmektedir. Bir farkları yoktur.*/
/* register sınıfındakiler, CPU belleğinde saklanır. Bu yüzden &(adres operatörü kullanılamaz.)
İlk değeri rastgele (garbage value) değerdir.
Hızlı erişim için idealdir.
Yerel scope'a sahiptir. Bir blok dışında değişken tanımlanırken register kullanılırsa hata verir.
*/
register int sayi2 = 32;
printf("%d", sayi2);
return 0;
}