15.1 enum Deyimi (Enumeration Constants)
15.1 enum Deyimi (Enumeration Constants)
Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı daha okunabilir hale getirmek için kullanılır. Genel yazım biçimi:
1 |
enum tip_adı{değer_1, değer_2, ..., değer_n} değişken_adı; |
tip_adı programcı tarafından verilen tip ismidir. değişken_adı ise program içinde kullanılacak olan değişkenin adıdır. Eğer kullanılmazsa program içinde daha sonra enum ile birlikte kullanılır. Örneğin:
1 |
enum bolumler{programcilik, donanim, muhasebe, motor}; |
tanımı ile derleyici programcilik için 0, donanim için 1, muhasebe için 2 ve motor için 3 değerini kabul ederek atamaları buna göre yapar. Değişken adı bildirilirse daha sonra enumkullanmaya gerek kalmaz. Örneğin:
1 2 |
enum renkler {kirmizi, mavi, sari} renk; enum gunler {pazartesi, sali, carsamba, persembe, cuma, cumartesi, pazar}; |
gibi yapılan sabit tanımlamaları program içinde kullanılabilir:
1 2 3 4 5 6 7 8 |
enum bolumler bolum; enum gunler gun; ... bolum = muhasebe; /* bolum = 2 anlamında */ gun = cuma; /* gun = 4 anlamında */ renk = kirmizi; /* renk = 0 anlamında */ |
Program 15.1 enum anahtar kelimesinin basit kullanımları gösterilmiştir.
Program 15.1: enum kullanımı
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 |
/* 15prg01.c: Klavyeden girilen bir sayının tek olup olmadığını sınar */ #include <stdio.h> enum BOOLEAN{ FALSE, TRUE }; /* 0, 1 */ int tek(int n){ return (n % 2); } int main() { enum BOOLEAN sonuc; int x; printf("Bir sayi girin: "); scanf("%d",&x); sonuc = tek(x); /* tek mi? */ if( sonuc == TRUE ) puts("Girilen sayi tek "); else puts("Girilen sayi cift"); return 0; } |
ÇIKTI
1 2 |
Bir sayi girin: 5 Girilen sayi tek |
enum bloğu içinde tanımlanmış değişkenlerin sahip sabit olacağı değerler Program 15.2 olduğu gibi programcı tarafından belirlenebilir.
Program 15.2: enum kullanımı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/* 15prg02.c: Beş sabit bölüm için enum kullanımı */ enum bolumler{ programcilik = 1, /* 1 */ donanim, /* 2 */ muhasebe, /* 3 */ motor, /* 4 */ buro /* 5 */ } bolum; int main() { bolum = donanim; printf("bolum : %d\n",bolum); bolum += 2; /* bolum = motor */ printf("Yeni bolum : %d\n",bolum); return 0; } |
ÇIKTI
1 2 |
bolum : 2 Yeni bolum : 4 |