C'de veri tipleri farklı tipteki değişkenlerin tanımlanmasını sağlar. Bu tipler sayesinde değişkenin veya fonksiyonun ne kadar yer kaplayacağı konusunda bilgi vermektedir. 4 ana tür mevcuttur:
1. Basit Tür (Basic Types)
Bu türdeki değişken tipleri integer ve floating-point olarak yer almaktadır.
2. Numaralandırılmış Türler (Enumerated Types)
Yine numerik değerlerdir fakat program boyunca yalnızca tanımlanmış tam sayı değerleri kullanılır.
3. Void Türler
Hiçbir değerin var olmadığını göstermektedir.
4. Türetilmiş Türler
Pointer, Array, Structure, Union ve Fonksiyonlar bu türlere girmektedir.
Temel olarak türler için düşünülmesi gereken bir işlevin türünün o işlevin dönen değerini ifade ettiğidir. Integer bir fonksiyonu ele aldığımızda o fonksiyonun döndürdüğü değerin integer olması şarttır.
Integer Türler
Aşağıdaki tabloyu inceleyerek ne kadar yer kapladıkları ve hangi aralıklara sahip olduklarını öğrenebilirsiniz.
Tür | Kapladığı Yer | Değer Aralığı |
---|---|---|
char | 1 byte | -128'den 127'ye VEYA 0'dan 255'e |
unsigned char | 1 byte | 0'dan 255'e |
signed char | 1 byte | -128'den 127'ye |
int | 2 ya da 4 bayt | -32,768'den 32,767 VEYA -2,147,483,648'den 2,147,483,647'e |
unsigned int | 2 ya da 4 bayt | 0'dan 65,535'e VEYA 0'dan 4,294,967,295'e |
short | 2 byte | -32,768'den 32,767'ye |
unsigned short | 2 byte | 0'dan 65,535'e |
long | 8 byte | -9223372036854775808'dan 9223372036854775807'e |
unsigned long | 8 byte | 0'dan 18446744073709551615'e |
Floating-Point Türler
Aynı şekilde virgüllü değerleri de inceleyebilirsiniz.
Tür | Kapladığı Yer | Değer Aralığı | Virgülden Sonra |
float | 4 byte | 1.2E-38'den 3.4E+38'e | 6 basamak |
double | 8 byte | 2.3E-308'den 1.7E+308'e | 15 basamak |
long double | 10 byte | 3.4E-4932'den 1.1E+4932'ye | 19 basamak |
void Türler
Yukarıda da belirttiğimiz gibi void veri tipine sahip değişkenler geriye bir değer döndürmezler. 3 farklı durumdan söz edilebilir.
1. Geriye değer döndürmezler. Kendi içerisinde çalıştırılması gereken işler için kullanılırlar. [ void test(int code1) ]
2. Bir fonksiyona gelen parametrenin veri tipi bilinemeyeceği durumlarda kullanılırlar. [ int hi(void) ]
3. Bir değişken için bellekte yer ayrılmak istenildiğinde değişken tipi bilinemeyeceğinden bu alan void olarak tanımlanır. [ void * malloc(size_t size) ]