C'de tam sayılara isim verilerek listeler oluşturulabilir. Bu listelerdeki isimler liste değişkenlerine doğrudan atanabilir. Bu durumda değişkene liste elemanının temsil ettiği değer atanacaktır. Listelerin tanımlanması yapı ve birliklerinkine çok benzer:
enum liste_tipi_ismi{
eleman_ismi_1=değer1,
eleman_ismi_2=değer2,
eleman_ismi_3=değer3,
...
};
Bir liste değişkeni de yine aynı şekilde bir yapı veya birlik değişkeni gibi ilan edilir:
enum liste_tipi_ismi değişken_ismi;
Aynı şekilde yine bu değişkenler hemen liste tipi tanımlandıktan sonra da ilan edilebilir:
enum liste_tipi_ismi{
eleman_ismi_1=değer1,
eleman_ismi_2=değer2,
eleman_ismi_3=değer3,
...
}değişken_ismi1,değişken_ismi2,...,değişken_ismiN;
Daha sonra bir değişkene liste elemanlarından birisi atanabilir. Elemanlara değer atamak zorunlu değildir. Bu durumda değer atanmayan eleman eğer ilk elemansa 0 değerini alır, diğer durumlarda ise eleman kendisinden bir önceki elemanın değerinden bir fazlasını alır.
Bilinmesi gereken bir nokta ilan edilen liste değişkeni bir int değişkeninden farklı değildir. Bir liste değişkenine liste elemanlarından biri atanabileceği gibi bir tam sayı da atanabilir. Aynı şekilde bir int değişkenine liste elemanlarından herhangi biri atanabilir ve liste elemanları tam sayı sabiti kullanılabilecek her yerde kullanılabilir.
#include <stdio.h>
int main(void){
enum colour{
white,
red=2,
green,
blue,
yellow,
black,
}jacket;
jacket=white;
int shirt=yellow;
printf("%d\n",jacket);
printf("%d\n",shirt);
jacket=50;
printf("%d\n",jacket);
return 0;
}
Yukarıdaki örnekte liste tipi tanımlanması, bir liste değişkeninin ilanı gösterilmiş ve bu değişkene liste elemanı atanması, bir int değişkenine liste elemanı atanması, liste değişkenine bir tam sayı atanması uygulamaları yapılmıştır.
Yukarıdaki listede white 0'ı, red 2'yi, green 3'ü, blue 4'ü, yellow 5'i ve black 6'yı temsil etmektedir.