logo

Kāds ir size_t datu tips valodā C?

izmērs_t ir neparakstīts vesels skaitlis datu tips, kas ir definēts dažādos galvenes failos, piemēram:

, , , , ,>

Tas ir veids, ko izmanto, lai attēlotu objektu lielumu baitos, un tāpēc to izmanto kā atgriešanas veidu izmērs operators . Tas ir garantēts, ka tas ir pietiekami liels, lai saturētu lielāko objektu, ko var apstrādāt resursdatora sistēma. Būtībā maksimālais pieļaujamais izmērs ir atkarīgs no kompilatora; ja kompilators ir 32 bitu, tad tas ir vienkārši typedef (t.i., aizstājvārds) neparakstīts int bet, ja kompilators ir 64 bitu, tad tas būtu typedef priekš neparakstīts garš garš . The izmērs_t datu tips nekad nav negatīvs.
Tāpēc daudzas C bibliotēkas funkcijas, piemēram, malloc, memcpy un strlen deklarēt savus argumentus un atgriešanas veidu kā izmērs_t . Piemēram,



C








iteratora java karte
// Declaration of various standard library functions.> // Here argument of 'n' refers to maximum blocks that can be> // allocated which is guaranteed to be non-negative.> void>*>malloc>(>size_t> n);> // While copying 'n' bytes from 's2' to 's1'> // n must be non-negative integer.> void>*>memcpy>(>void>* s1,>void> const>* s2,>size_t> n);> // strlen() uses size_t because the length of any string> // will always be at least 0.> size_t> strlen>(>char> const>* s);>

>

>

izmērs_t vai jebkurš neparakstīts tips var tikt izmantots kā cilpas mainīgais, jo cilpas mainīgie parasti ir lielāki vai vienādi ar 0.
Piezīme: Kad mēs izmantojam a izmērs_t objektu, mums ir jāpārliecinās, ka visos kontekstos, kas tiek izmantoti, ieskaitot aritmētiku, mēs vēlamies tikai nenegatīvas vērtības. Piemēram, šāda programma noteikti sniegtu negaidītu rezultātu:

1. piemērs

C




// C program to demonstrate that size_t or> // any unsigned int type should be used> // carefully when used in a loop.> #include> #define N 10> int> main()> {> >int> a[N];> >// This is fine.> >for> (>size_t> n = 0; n a[n] = n; } // But reverse cycles are tricky for unsigned // types as they can lead to infinite loops. for (size_t n = N - 1; n>= 0; --n) printf('%d ', a[n]); }>

java pupiņas
>

>

  Output  Infinite loop and then segmentation fault>


2. piemērs

  • Datu tips size_t C ir neparakstīts vesels skaitļa tips, ko izmanto, lai attēlotu objektu lielumu baitos. Tas ir definēts stddef.h galvenē un parasti tiek izmantots, lai attēlotu masīvu, atmiņas bloku un virkņu lielumu.
  • Šeit ir programmas piemērs, kas parāda size_t izmantošanu:

C




#include> #include> int> main()> {> >int> array[5] = { 1, 2, 3, 4, 5 };> >size_t> size =>sizeof>(array);> >printf>(>'The size of the array is: %lu '>, size);> >return> 0;> }>

javascript brīdinājuma lodziņš
>

>

  • šajā programmā izmērs_t tiek izmantots, lai saglabātu masīva lielumu baitos.
  • Operatoru sizeof izmanto, lai noteiktu masīva lielumu, kas pēc tam tiek saglabāts lieluma mainīgajā ar veidu size_t. Formāta norādītājs %lu tiek izmantots, lai drukātu lieluma_t vērtību, kas ir neparakstīts garš vesels skaitlis.
  • Programmas izvadi Masīva lielums ir: 20, kas ir masīva aizņemto baitu skaits (5 elementi * 4 baiti uz elementu).

Lieluma_t izmantošanas priekšrocības C programmēšanā:

  • Pārnesamība : Datu tips size_t ir definēts galvenē stddef.h, kas ir daļa no C standarta bibliotēkas. Izmantojot izmēru_t, varat nodrošināt, ka jūsu kods ir pārnēsājams dažādās platformās un kompilatoros.
  • Neparakstīts : size_t ir neparakstīta vesela skaitļa veids, kas nozīmē, ka tas var attēlot lielumus līdz maksimālajam neparakstīto veselo skaitļu lielumam. Tas ir noderīgi, strādājot ar masīviem un atmiņas blokiem, jo ​​izmēri nekad nevar būt negatīvi.
  • Performance : size_t parasti tiek ieviests kā ātrs un efektīvs veselu skaitļu tips, un tā izmantošana var nodrošināt labāku veiktspēju nekā citu veselu skaitļu veidu izmantošana.
  • Skaidrs nolūks: Izmantojot size_t, jūsu koda lasītājam ir skaidrs, ka jums ir darīšana ar izmēriem, nevis cita veida veseliem skaitļiem. Tas padara kodu vieglāk saprotamu un mazāk pakļauti kļūdām.
  • Standartizācija : Izmantojot size_t, jūs ievērojat plaši izmantotu un pieņemtu standartu, kas padara jūsu kodu lasāmāku un uzturējamāku citiem programmētājiem.
  • Sadarbspēja : size_t tiek plaši izmantots daudzās bibliotēkās un API, un tā izmantošana savā kodā ļauj vieglāk integrēt ar citu kodu.