Önemli Veri Türleri
Önceki Ek A. Kütüphanedeki C Dili Oluşumları Sonraki
Önemli Veri Türleri
İki gösterici ile yapılan çıkartma işleminin sonucu C'de daima bir tamsayıdır, ancak doğru veri türü C derleyicisinden C derleyicisine değişir. Benzer şekilde, sizeof'un sonucunun veri türü de derleyiciler arasında değişiklik gösterir. ISO bu iki tür için standart isimler tanımlar, böylece bunlar kullanılarak taşınabilirlik sorunları çözülür. Bunlar stddef.h başlık dosyasında tanımlanmıştır.
ptrdiff_t
veri türü
Bu göstericiler arasındaki çıkartma işleminin sonucunun işaretli tamsayı türüdür. Örneğin, char *p1, *p2; bildirimiyle p2 - p1 ifadesi ptrdiff_t türündedir. Bu şüphesiz standart işaretli tamsayı türlerinden biri (short int, int veya long int) olacaktır, ancak sadece bu amaca yönelik olarak bir standart dışı tür de mevcut olabilir.
size_t
veri türü
Bu bir işaretsiz tamsayı türdür ve nesnelerin boyutları için kullanılır. sizeof işlecinin sonucu bu türdendir ve malloc, memcpy gibi işlevler argümanlarında nesne boyutlarını bu türde kabul ederler.
Kullanım Bilgisi:
size_t, bir nesnenin boyutunu tutan herhangi bir değişken ya da argüman bildiriminde önerilen yoldur.
GNU sisteminde size_t ya unsigned int ya da unsigned long int türüne eşdeğerdir. Bu iki tür GNU sisteminde eşanlamlıdır ve bir çok kullanım amacına yönelik olarak biri diğerinin yerine kullanılabilir. Yine de, onlar farklı veri türleridir ve bazı bağlamlarda veri türü olarak bir fark oluşturabilir.
Örneğin, bir işlev prototipinde bir işlev argümanının türünü belirtirseniz, bunlardan diğerinin kullanımı bir fark oluşturabilir. Sistem başlık dosyasında malloc işlevi size_t türünden bir argümanla bildirilmişse ve siz onu unsigned int türünden bir argümanla bildirirseniz, sisteminizde size_t türü unsigned long int türüne karşılıksa derleme sırasında hata alırsınız.
Uyumluluk Bilgisi:
ISO C'den önceki C gerçeklemeleri genellikle nesne boyutları için unsigned int ve gösterici çıkartma ifadeleri için int türünü kullandılar, size_t ya da ptrdiff_t tanımlamak gereği duymadılar. Unix sistemleri size_t türünü sys/types.h dosyasında tanımladı ama bu tanım bir işaretli türdü.
Önceki Üst Ana Başlık Sonraki
Boş Gösterici Sabiti Başlangıç Veri Türü Ölçüleri
Bir Linux Kitaplığı Sayfası