logo

C'de size_t nedir

gibi veri türleriyle sıklıkla karşılaşıyoruz. int , batmadan yüzmek , Ve karakter C'de programlama yaparken. Ancak, size_t C programlarında sıklıkla kullanılan ancak daha az bilinen bir veri türüdür. Bu blog yazısında bu konuyu ele alacağız size_t'ler tanım, sözdizimi , Ve örnek nasıl kullanılacağını gösteren çıktı ile.

C standart kütüphanesinin stddef.h başlık dosyası imzasız tamsayı veri türünü tanımlar size_t . Sık sık kullanılır hafıza paylaştırma Ve tampon manipülasyonu ve bir nesnenin boyutunu bayt cinsinden ifade etmek için kullanılır. Belirli bir sistemin hafızasına tahsis edilebilecek her nesnenin maksimum boyutunun, şu şekilde temsil edilmesi garanti edilir: size_t veri türü .

size_t sözdizimi

Sözdizimi size_t Şöyleki:

 size_t variable; 

A size_t değişkeni kullanılarak bildirilir size_t anahtar kelime. Değişken bir nesnenin boyutunu depolamak için kullanılabilir ve ona bu ad verilmiştir. değişken ismi .

size_t kullanımına örnek

Bu çizimde kullanacağımız size_t bir dizinin boyutunu belirlemek ve bunu konsola yazdırmak için.

 #include #include int main() { int array[] = {1, 2, 3, 4, 5}; size_t s =sizeof(array) / sizeof(array[0]); printf('Size of array: %zu
', s); return 0; } 

Çıktı:

Bu programı çalıştırdığımızda konsolda aşağıdaki çıktının görünmesi gerekir:

 Size of array: 5 

boyut değişkeni değeri 5 Dizideki eleman sayısına karşılık gelen bu çıktı ile gösterilir.

Açıklama:

yazılım testi türleri

Bu programda öncelikle bir beyanda bulunuyoruz. beş öğeli tamsayı dizisi . Bundan sonra dizinin bayt cinsinden boyutu bir a bildirilerek belirlenir. size_t değişkeni ile sizeof operatörü . Beri sizeof operatörü toplam dizinin boyutunu bayt cinsinden döndürür; bunu bir öğenin boyutuna böleriz (bu durumda, int ) dizinin toplam öğe sayısını belirlemek için.

Bundan sonra dizinin boyutu konsola yazdırılır. baskı işlev. size_t boyutun type değeri kullanılarak yazdırılır. %ile biçim belirtici.

Ek olarak, size_t sıklıkla ek C veri türleri ve işlemleriyle birleştirilir malloc , kalloc , yeniden tahsis , Ve strlen . Bunlar işlevler Ve veri tipleri bağlıdır size_t Bir programdaki belleği etkili bir şekilde tahsis etmek ve yönetmek.

sütun ekle Oracle'ı değiştir

Örneğin, sunulan argüman malloc işlevi türden size_t ve belleği dinamik olarak tahsis etmek için işlev kullanıldığında tahsis edilecek bayt sayısını temsil eder. Geri dönüş değeri strlen işlev de türdendir size_t ve bir dizenin uzunluğunu belirleyen dizenin karakter sayısını temsil eder.

Karıştırma imzalanmış Ve imzasız çalışırken sayılar size_t beklenmeyen program davranışına ve hatalara neden olabilecek yaygın bir sorundur. Nesne boyutlarıyla uğraşırken her zaman aşağıdakileri kullanmak çok önemlidir: size_t Programın belleği doğru şekilde tahsis ettiğinden ve değiştirdiğinden emin olmak için.

Bunu hatırlamak çok önemli size_t'ler kesin boyut, kullanılan sistem mimarisine ve derleyiciye bağlı olarak değişebilir. bir 32 bit sistem , size_t tipik olarak eşdeğerdir işaretsiz uzun tamsayı ve bir 64 bit sistem işaretsiz uzun bir tamsayıya eşdeğerdir. Tamsayı taşması ile ilgili herhangi bir sorunu önlemek için sistem belgelerini gözden geçirmek ve nesne boyutları için uygun veri türünün kullanıldığını doğrulamak çok önemlidir.

Çözüm:

Sonuç olarak, size_t C programlama dilindeki temel veri türü, bir nesnenin bayt cinsinden boyutunu temsil eder. Gibi bellek ayırma prosedürleriyle birlikte bir nesneye gerekli miktarda bellek tahsis etmek için sıklıkla kullanılır. malloc , kalloc , Ve yeniden tahsis .

Evlat edinmenin en önemli faydalarından biri, size_t birçok platform ve derleyicide nesne boyutlarını ifade etmenin tutarlı bir yolunu sunar. Programcılarla çalışırken farklı işletim sistemleri arasında aktarılabilir olmalıdır.

Yeteneği size_t tamsayı gibi sorunların önlenmesine yardımcı olmak için taşma Ve taşma Bellek erişim hatalarına ve diğer sorunlara neden olabilecek bir diğer önemli avantajdır. Programcılar nesne boyutlarını yöneterek daha güvenilir ve emniyetli programcılar yaratabilirler. size_t .

Her şey düşünüldü, size_t C programcıları için çok önemli bir araçtır. Programcılar, sözdizimini ve uygun uygulamayı kavrayarak nesne boyutlarıyla çalışırken daha etkili, güvenilir ve hatasız kod geliştirebilirler.